1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// MISC REGRESSIONS
// ================================================================================================
use super::*;
#[test]
fn test_issue_2181_locaddr_bug_assembly() -> TestResult {
let context = TestContext::default();
let source = source_file!(
&context,
r#"
proc some_proc
nop
end
@locals(4)
proc main
locaddr.0
locaddr.0
locaddr.0
exec.some_proc
dropw
end
begin
exec.main
end"#
);
let program = context.assemble(source)?;
insta::assert_snapshot!(program);
Ok(())
}
/// Tests conditional debug info functionality
///
/// This test is disabled because with debug mode always enabled (issue #1821),
/// we no longer have the ability to turn debug mode off. The old functionality
#[test]
fn test_assembler_debug_info_present() {
let context = TestContext::default();
let source = r#"
namespace test::foo
pub proc foo
push.1 push.2 add
end
"#;
let module = parse_module!(&context, source);
// Test: With debug mode always enabled (issue #1821), debug info should always be present
let assembler = Assembler::default();
let library = assembler.assemble_library("test", module, None::<Box<Module>>).unwrap();
// Debug info should be present since debug mode is enabled by default.
// AssemblyOps are stored in package-owned source debug metadata.
assert_package_has_source_asm_ops(
&library,
"Package-owned AssemblyOps should be present for tracking instructions",
);
}