diff --git a/src/spicy/spicyz/glue-compiler.cc b/src/spicy/spicyz/glue-compiler.cc index b1fbc28a62..0815876552 100644 --- a/src/spicy/spicyz/glue-compiler.cc +++ b/src/spicy/spicyz/glue-compiler.cc @@ -985,7 +985,7 @@ bool GlueCompiler::PopulateEvents() { } } - ev.unit_type = std::move(uinfo.type.as<::spicy::type::Unit>()); + ev.unit_type = uinfo.type.as<::spicy::type::Unit>(); ev.unit_module_id = uinfo.module_id; ev.unit_module_path = uinfo.module_path; diff --git a/testing/btest/Baseline/spicy.export-type-e2e/output b/testing/btest/Baseline/spicy.export-type-e2e/output new file mode 100644 index 0000000000..97c098fbaf --- /dev/null +++ b/testing/btest/Baseline/spicy.export-type-e2e/output @@ -0,0 +1,3 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +[x=71] +[x=72] diff --git a/testing/btest/spicy/export-type-e2e.zeek b/testing/btest/spicy/export-type-e2e.zeek new file mode 100644 index 0000000000..ce9b402b1b --- /dev/null +++ b/testing/btest/spicy/export-type-e2e.zeek @@ -0,0 +1,31 @@ +# @TEST-REQUIRES: have-spicy +# +# @TEST-EXEC: spicyz -do export.hlto export.spicy export.evt +# @TEST-EXEC: zeek -Cr $TRACES/http/pipelined-requests.trace export.hlto %INPUT >>output +# @TEST-EXEC: test '!' -e reporter.log +# @TEST-EXEC: btest-diff output +# +# @TEST-DOC: Test type export end-to-end, with access from the Zeek side. Regression test for #3083. + +# @TEST-START-FILE export.spicy +module foo; + +public type X = unit { + x: uint8; +}; +# @TEST-END-FILE + +# @TEST-START-FILE export.evt +import foo; + +protocol analyzer FOO over TCP: + parse with foo::X, + port 80/tcp; + +export foo::X; + +on foo::X -> event foo::hello(self); +# @TEST-END-FILE + +event foo::hello(x: foo::X) + { print x; }