From ab80c767bdf8506677bf204b7522912fd184fb21 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Wed, 13 Aug 2025 13:03:01 +0300 Subject: [PATCH] vdoc: extract vdoc_run_examples_test.v from vdoc_file_test.v --- cmd/tools/vdoc/vdoc_file_test.v | 25 ------------------ cmd/tools/vdoc/vdoc_run_examples_test.v | 34 +++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 25 deletions(-) create mode 100644 cmd/tools/vdoc/vdoc_run_examples_test.v diff --git a/cmd/tools/vdoc/vdoc_file_test.v b/cmd/tools/vdoc/vdoc_file_test.v index 1168af4bec..a34f1d9563 100644 --- a/cmd/tools/vdoc/vdoc_file_test.v +++ b/cmd/tools/vdoc/vdoc_file_test.v @@ -44,31 +44,6 @@ fn test_output() { assert total_fails == 0 } -fn test_run_examples_good() { - os.setenv('VCOLORS', 'never', true) - os.chdir(vroot)! - res := os.execute('${vexe} doc -comments -run-examples cmd/tools/vdoc/testdata/run_examples_good/main.v') - assert res.exit_code == 0 - assert res.output.contains('module main'), res.output - assert res.output.contains('fn abc()'), res.output - assert res.output.contains("abc just prints 'xyz'"), res.output - assert res.output.contains('and should succeed'), res.output - assert res.output.contains('Example: assert 5 * 5 == 25'), res.output -} - -fn test_run_examples_bad() { - os.setenv('VCOLORS', 'never', true) - os.chdir(vroot)! - res := os.execute('${vexe} doc -comments -run-examples cmd/tools/vdoc/testdata/run_examples_bad/main.v') - assert res.exit_code != 0 - assert res.output.contains('error in documentation example'), res.output - assert res.output.contains(' left value: 5 * 5 = 25'), res.output - assert res.output.contains('right value: 77'), res.output - assert res.output.contains('V panic: Assertion failed...'), res.output - assert res.output.contains('module main'), res.output - assert res.output.contains('Example: assert 5 * 5 == 77'), res.output -} - const small_pure_v_vlib_module = 'bitfield' fn test_out_path() { diff --git a/cmd/tools/vdoc/vdoc_run_examples_test.v b/cmd/tools/vdoc/vdoc_run_examples_test.v new file mode 100644 index 0000000000..4b034dee01 --- /dev/null +++ b/cmd/tools/vdoc/vdoc_run_examples_test.v @@ -0,0 +1,34 @@ +import os + +const vexe_path = @VEXE +const vexe = os.quoted_path(vexe_path) +const vroot = os.dir(vexe_path) + +fn test_run_examples_good() { + os.setenv('VCOLORS', 'never', true) + os.chdir(vroot)! + cmd := '${vexe} doc -comments -run-examples cmd/tools/vdoc/testdata/run_examples_good/main.v' + println('${@METHOD:30} running ${cmd} ...') + res := os.execute(cmd) + assert res.exit_code == 0 + assert res.output.contains('module main'), res.output + assert res.output.contains('fn abc()'), res.output + assert res.output.contains("abc just prints 'xyz'"), res.output + assert res.output.contains('and should succeed'), res.output + assert res.output.contains('Example: assert 5 * 5 == 25'), res.output +} + +fn test_run_examples_bad() { + os.setenv('VCOLORS', 'never', true) + os.chdir(vroot)! + cmd := '${vexe} doc -comments -run-examples cmd/tools/vdoc/testdata/run_examples_bad/main.v' + println('${@METHOD:30} running ${cmd} ...') + res := os.execute(cmd) + assert res.exit_code != 0 + assert res.output.contains('error in documentation example'), res.output + assert res.output.contains(' left value: 5 * 5 = 25'), res.output + assert res.output.contains('right value: 77'), res.output + assert res.output.contains('V panic: Assertion failed...'), res.output + assert res.output.contains('module main'), res.output + assert res.output.contains('Example: assert 5 * 5 == 77'), res.output +}