@@ -38,11 +38,11 @@ witguest-wit:
3838 cargo install --locked wasm-tools
3939 cd src/ tests/ rust_guests/ witguest && wasm-tools component wit guest.wit -w -o interface.wasm
4040
41- build-rust-guests target = default-target : (witguest-wit )
42- cd src/ tests/ rust_guests/ callbackguest && cargo build --profile={{ if target == " debug" { " dev" } else { target } }}
43- cd src/ tests/ rust_guests/ simpleguest && cargo build --profile={{ if target == " debug" { " dev" } else { target } }}
44- cd src/ tests/ rust_guests/ dummyguest && cargo build --profile={{ if target == " debug" { " dev" } else { target } }}
45- cd src/ tests/ rust_guests/ witguest && cargo build --profile={{ if target == " debug" { " dev" } else { target } }}
41+ build-rust-guests target = default-target features = " " : (witguest-wit )
42+ cd src/ tests/ rust_guests/ callbackguest && cargo build {{ if features == " " { ' ' } else if features == " no-default-features" { " --no-default-features" } else { " --no-default-features -F " + features } }} --profile={{ if target == " debug" { " dev" } else { target } }}
43+ cd src/ tests/ rust_guests/ simpleguest && cargo build {{ if features == " " { ' ' } else if features == " no-default-features" { " --no-default-features" } else { " --no-default-features -F " + features } }} --profile={{ if target == " debug" { " dev" } else { target } }}
44+ cd src/ tests/ rust_guests/ dummyguest && cargo build {{ if features == " " { ' ' } else if features == " no-default-features" { " --no-default-features" } else { " --no-default-features -F " + features } }} --profile={{ if target == " debug" { " dev" } else { target } }}
45+ cd src/ tests/ rust_guests/ witguest && cargo build {{ if features == " " { ' ' } else if features == " no-default-features" { " --no-default-features" } else { " --no-default-features -F " + features } }} --profile={{ if target == " debug" { " dev" } else { target } }}
4646
4747@ move-rust-guests target = default-target :
4848 cp {{ callbackguest_source }} / {{ target }} / callbackguest* {{ rust_guests_bin_dir }} / {{ target }} /
@@ -82,13 +82,17 @@ test-like-ci config=default-target hypervisor="kvm":
8282 cargo check -p hyperlight-host --features crashdump
8383 cargo check -p hyperlight-host --features print_debug
8484 cargo check -p hyperlight-host --features gdb
85+ cargo check -p hyperlight-host --features trace_guest,unwind_guest,mem_profile
8586
8687 @ # without any driver (should fail to compile)
8788 just test-compilation-no-default-features {{ config}}
8889
8990 @ # test the crashdump feature
9091 just test-rust-crashdump {{ config}}
9192
93+ @ # test the tracing related features
94+ just test-rust-tracing {{ config}} {{ if hypervisor == " mshv3" {" mshv3" } else {" " } }}
95+
9296# runs all tests
9397test target = default-target features = " ": (test-unit target features) (test-isolated target features) (test-integration " rust" target features) (test-integration " c" target features) (test-seccomp target features)
9498
@@ -141,6 +145,25 @@ test-rust-gdb-debugging target=default-target features="":
141145test-rust-crashdump target = default-target features = " ":
142146 cargo test --profile={{ if target == " debug" { " dev" } else { target } }} {{ if features == " " {' --features crashdump' } else { " --features crashdump," + features } }} -- test_crashdump
143147
148+ # rust test for tracing
149+ test-rust-tracing target = default-target features = " ":
150+ # Run tests for the tracing guest and macro
151+ cargo test -p hyperlight-guest-tracing --profile={{ if target == " debug" { " dev" } else { target } }}
152+ cargo test -p hyperlight-guest-tracing-macro --profile={{ if target == " debug" { " dev" } else { target } }}
153+
154+ # Prepare the tracing guest for testing
155+ just build-rust-guests {{ target }} trace_guest
156+ just move-rust-guests {{ target }}
157+ # Run hello-world example with tracing enabled to get the trace output
158+ # Capture the trace file path and print use it afterwards to run cargo run -p trace_dump
159+ cargo run --profile={{ if target == " debug" { " dev" } else { target } }} --example hello-world --features {{ if features == " " {' trace_guest' } else { " trace_guest," + features } }} \
160+ | sed -n ' s/.*Creating trace file at: \(.*\)/\1/p' \
161+ | xargs -I {} cargo run -p trace_dump ./ {{ simpleguest_source }} / {{ target }} / simpleguest {} list_frames
162+
163+ # Rebuild the tracing guests without the tracing feature
164+ # This is to ensure that the tracing feature does not affect the other tests
165+ just build-rust-guests {{ target }}
166+ just move-rust-guests {{ target }}
144167
145168################
146169### LINTING ####
0 commit comments