aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/old/examples/dynamic_library_loading/use_test.v
diff options
context:
space:
mode:
authorIndrajith K L2022-12-03 17:00:20 +0530
committerIndrajith K L2022-12-03 17:00:20 +0530
commitf5c4671bfbad96bf346bd7e9a21fc4317b4959df (patch)
tree2764fc62da58f2ba8da7ed341643fc359873142f /v_windows/v/old/examples/dynamic_library_loading/use_test.v
downloadcli-tools-windows-master.tar.gz
cli-tools-windows-master.tar.bz2
cli-tools-windows-master.zip
Adds most of the toolsHEADmaster
Diffstat (limited to 'v_windows/v/old/examples/dynamic_library_loading/use_test.v')
-rw-r--r--v_windows/v/old/examples/dynamic_library_loading/use_test.v56
1 files changed, 56 insertions, 0 deletions
diff --git a/v_windows/v/old/examples/dynamic_library_loading/use_test.v b/v_windows/v/old/examples/dynamic_library_loading/use_test.v
new file mode 100644
index 0000000..9a93d66
--- /dev/null
+++ b/v_windows/v/old/examples/dynamic_library_loading/use_test.v
@@ -0,0 +1,56 @@
+module main
+
+import os
+import dl
+
+const (
+ vexe = os.real_path(os.getenv('VEXE'))
+ cfolder = os.dir(@FILE)
+ so_ext = dl.dl_ext
+ library_file_name = os.join_path(cfolder, dl.get_libname('library'))
+)
+
+fn test_vexe() {
+ // dump(vexe)
+ assert vexe != ''
+ // dump(os.executable())
+ // dump(@FILE)
+ // dump(cfolder)
+ // dump(so_ext)
+ // dump(library_file_name)
+}
+
+fn test_can_compile_library() {
+ os.chdir(cfolder)
+ os.rm(library_file_name) or {}
+ v_compile('-d no_backtrace -o library -shared modules/library/library.v')
+ assert os.is_file(library_file_name)
+}
+
+fn test_can_compile_main_program() {
+ os.chdir(cfolder)
+ assert os.is_file(library_file_name)
+ result := v_compile('run use.v')
+ // dump(result)
+ assert result.output.contains('res: 4')
+ os.rm(library_file_name) or {}
+}
+
+fn test_can_compile_and_use_library_with_skip_unused() {
+ os.chdir(cfolder)
+ os.rm(library_file_name) or {}
+ v_compile('-skip-unused -d no_backtrace -o library -shared modules/library/library.v')
+ assert os.is_file(library_file_name)
+ result := v_compile('run use.v')
+ assert result.output.contains('res: 4')
+ os.rm(library_file_name) or {}
+}
+
+fn v_compile(vopts string) os.Result {
+ cmd := '"$vexe" -showcc $vopts'
+ // dump(cmd)
+ res := os.execute_or_exit(cmd)
+ // dump(res)
+ assert res.exit_code == 0
+ return res
+}