From 6a0a2da05c4b4da57ce15a51a3d267962ceb47ee Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Wed, 3 Jun 2020 10:16:08 +0300 Subject: [PATCH] cgen: support `$if test { ... }` --- vlib/v/gen/cgen.v | 6 ++++++ vlib/v/tests/comptime_if_test_support_test.v | 10 ++++++++++ 2 files changed, 16 insertions(+) create mode 100644 vlib/v/tests/comptime_if_test_support_test.v diff --git a/vlib/v/gen/cgen.v b/vlib/v/gen/cgen.v index 2da086a9ca..721d6adf73 100644 --- a/vlib/v/gen/cgen.v +++ b/vlib/v/gen/cgen.v @@ -267,6 +267,9 @@ pub fn (mut g Gen) init() { if g.pref.is_debug || 'debug' in g.pref.compile_defines { g.comptime_defines.writeln('#define _VDEBUG (1)') } + if g.pref.is_test || 'test' in g.pref.compile_defines { + g.comptime_defines.writeln('#define _VTEST (1)') + } if g.pref.is_livemain || g.pref.is_liveshared { g.generate_hotcode_reloading_declarations() } @@ -3451,6 +3454,9 @@ fn (mut g Gen) comp_if_to_ifdef(name string, is_comptime_optional bool) string { 'debug' { return '_VDEBUG' } + 'test' { + return '_VTEST' + } 'glibc' { return '__GLIBC__' } diff --git a/vlib/v/tests/comptime_if_test_support_test.v b/vlib/v/tests/comptime_if_test_support_test.v new file mode 100644 index 0000000000..5eaf2bbd7e --- /dev/null +++ b/vlib/v/tests/comptime_if_test_support_test.v @@ -0,0 +1,10 @@ +fn test_comptime_if_test() { + mut i := 0 + $if test { + i++ + } + $if !test { + i-- + } + assert i == 1 +}