diff --git a/sway-core/src/abi_generation/fuel_abi.rs b/sway-core/src/abi_generation/fuel_abi.rs index 447d29341cb..7fdd704155d 100644 --- a/sway-core/src/abi_generation/fuel_abi.rs +++ b/sway-core/src/abi_generation/fuel_abi.rs @@ -181,17 +181,24 @@ pub fn generate_program_abi( configurables: Some(configurables), } } - TyProgramKind::Library { .. } => program_abi::ProgramABI { - program_type: "library".to_string(), - spec_version, - encoding_version, - metadata_types: vec![], - concrete_types: vec![], - functions: vec![], - logged_types: None, - messages_types: None, - configurables: None, - }, + TyProgramKind::Library { .. } => { + let logged_types = + generate_logged_types(handler, ctx, engines, metadata_types, concrete_types)?; + let messages_types = + generate_messages_types(handler, ctx, engines, metadata_types, concrete_types)?; + + program_abi::ProgramABI { + program_type: "library".to_string(), + spec_version, + encoding_version, + metadata_types: metadata_types.to_vec(), + concrete_types: concrete_types.to_vec(), + functions: vec![], + logged_types: Some(logged_types), + messages_types: Some(messages_types), + configurables: None, + } + } }; standardize_json_abi_types(&mut program_abi); diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/log_decode/.gitignore b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/.gitignore similarity index 100% rename from test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/log_decode/.gitignore rename to test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/.gitignore diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/log_decode/Forc.lock b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/Forc.lock similarity index 54% rename from test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/log_decode/Forc.lock rename to test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/Forc.lock index 196dae73163..70b69e79183 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/log_decode/Forc.lock +++ b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/Forc.lock @@ -1,13 +1,13 @@ [[package]] name = "core" -source = "path+from-root-A2C6CB9CD0980A06" +source = "path+from-root-A1A671B3B44F9A9A" [[package]] -name = "log_decode" +name = "lib_log_decode" source = "member" dependencies = ["std"] [[package]] name = "std" -source = "path+from-root-A2C6CB9CD0980A06" +source = "path+from-root-A1A671B3B44F9A9A" dependencies = ["core"] diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/Forc.toml b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/Forc.toml new file mode 100644 index 00000000000..ec2c43496a9 --- /dev/null +++ b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/Forc.toml @@ -0,0 +1,8 @@ +[project] +authors = ["Fuel Labs "] +entry = "lib.sw" +license = "Apache-2.0" +name = "lib_log_decode" + +[dependencies] +std = { path = "../../../../../../../sway-lib-std" } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/src/lib.sw b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/src/lib.sw new file mode 100644 index 00000000000..bd0e79fc596 --- /dev/null +++ b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/src/lib.sw @@ -0,0 +1,34 @@ +library; + +use std::flags::disable_panic_on_overflow; + +#[test] +fn test_fn() { + let a = 10; + log(a); + let b = 30; + log(b); + assert_eq(a, 10) +} + +#[test] +fn math_u16_overflow_mul() { + disable_panic_on_overflow(); + + let a = (u16::max() / 2 ) + 1; + let b = a * 2; + + log(b); + assert(b == 0_u16) +} + +#[test] +fn math_u32_overflow_mul() { + disable_panic_on_overflow(); + + let a = (u32::max() / 2 ) + 1; + let b = a * 2; + + log(b); + assert(b == 0_u32) +} \ No newline at end of file diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/test.toml b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/test.toml new file mode 100644 index 00000000000..5161cc99146 --- /dev/null +++ b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/lib_log_decode/test.toml @@ -0,0 +1,3 @@ +category = "unit_tests_pass" +expected_decoded_test_logs = ["10", "30", "0", "0"] +experimental_new_encoding = true diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/.gitignore b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/.gitignore new file mode 100644 index 00000000000..77d3844f58c --- /dev/null +++ b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/.gitignore @@ -0,0 +1,2 @@ +out +target diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/Forc.lock b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/Forc.lock new file mode 100644 index 00000000000..ff4f7f79e7f --- /dev/null +++ b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/Forc.lock @@ -0,0 +1,13 @@ +[[package]] +name = "core" +source = "path+from-root-2988E4B52C5E1B31" + +[[package]] +name = "script_log_decode" +source = "member" +dependencies = ["std"] + +[[package]] +name = "std" +source = "path+from-root-2988E4B52C5E1B31" +dependencies = ["core"] diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/log_decode/Forc.toml b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/Forc.toml similarity index 86% rename from test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/log_decode/Forc.toml rename to test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/Forc.toml index 63d055cdfb9..c8de77afce9 100644 --- a/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/log_decode/Forc.toml +++ b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/Forc.toml @@ -2,7 +2,7 @@ authors = ["Fuel Labs "] entry = "main.sw" license = "Apache-2.0" -name = "log_decode" +name = "script_log_decode" [dependencies] std = { path = "../../../../reduced_std_libs/sway-lib-std-assert" } diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/log_decode/src/main.sw b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/src/main.sw similarity index 100% rename from test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/log_decode/src/main.sw rename to test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/src/main.sw diff --git a/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/log_decode/test.toml b/test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/test.toml similarity index 100% rename from test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/log_decode/test.toml rename to test/src/e2e_vm_tests/test_programs/should_pass/unit_tests/script_log_decode/test.toml