From 57184dd74bdfe5fe32285d8df763fef1006e9ad6 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Tue, 26 Mar 2024 11:48:45 +0200 Subject: [PATCH] tests: test `@[c_extern]` for a C global variable as well (#21102) --- vlib/v/gen/c/testdata/translated/sym.c | 4 ++++ .../c/testdata/translated/translated_module_actual.v | 11 +++++++++++ vlib/v/gen/c/testdata/translated_module.c.must_have | 1 + vlib/v/gen/c/testdata/translated_module.vv | 1 + 4 files changed, 17 insertions(+) diff --git a/vlib/v/gen/c/testdata/translated/sym.c b/vlib/v/gen/c/testdata/translated/sym.c index 8e6453170..7b76a0c83 100644 --- a/vlib/v/gen/c/testdata/translated/sym.c +++ b/vlib/v/gen/c/testdata/translated/sym.c @@ -1,3 +1,7 @@ +struct my_struct { + bool active; +} my_instance = { true }; + int ExternalSymbol(char *hello) { return *hello; } diff --git a/vlib/v/gen/c/testdata/translated/translated_module_actual.v b/vlib/v/gen/c/testdata/translated/translated_module_actual.v index d5103830e..dafbe060c 100644 --- a/vlib/v/gen/c/testdata/translated/translated_module_actual.v +++ b/vlib/v/gen/c/testdata/translated/translated_module_actual.v @@ -5,3 +5,14 @@ module translated @[c: 'ExternalSymbol'] pub fn external_symbol(&char) int + +struct C.my_struct { + active bool +} + +@[c_extern] +__global my_instance C.my_struct + +pub fn is_my_instance_active() bool { + return my_instance.active +} diff --git a/vlib/v/gen/c/testdata/translated_module.c.must_have b/vlib/v/gen/c/testdata/translated_module.c.must_have index 50396d4f5..94df23547 100644 --- a/vlib/v/gen/c/testdata/translated_module.c.must_have +++ b/vlib/v/gen/c/testdata/translated_module.c.must_have @@ -1,2 +1,3 @@ int ExternalSymbol(char* ); int a = ExternalSymbol("hello"); +extern struct my_struct my_instance; diff --git a/vlib/v/gen/c/testdata/translated_module.vv b/vlib/v/gen/c/testdata/translated_module.vv index ab234e247..1deb81ee6 100644 --- a/vlib/v/gen/c/testdata/translated_module.vv +++ b/vlib/v/gen/c/testdata/translated_module.vv @@ -6,4 +6,5 @@ fn main() { a := external_symbol(c'hello') println('result: ${a}') assert a == 104 + assert translated.is_my_instance_active() == true } -- 2.39.5