53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			V
		
	
	
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, 'library$so_ext')
 | 
						|
)
 | 
						|
 | 
						|
fn test_vexe() {
 | 
						|
	eprintln('vexe: $vexe')
 | 
						|
	assert vexe != ''
 | 
						|
	eprintln('os.executable: ' + os.executable())
 | 
						|
	eprintln('@FILE: ' + @FILE)
 | 
						|
	eprintln('cfolder: $cfolder')
 | 
						|
	eprintln('so_ext: $so_ext')
 | 
						|
	eprintln('library_file_name: $library_file_name')
 | 
						|
}
 | 
						|
 | 
						|
fn test_can_compile_library() {
 | 
						|
	os.chdir(cfolder)
 | 
						|
	os.rm(library_file_name)
 | 
						|
	res := v_compile('-d no_backtrace -o library -shared library.v')
 | 
						|
	eprintln('res: $res')
 | 
						|
	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')
 | 
						|
	eprintln('result: $result')
 | 
						|
	assert result.output.contains('res: 4')
 | 
						|
	os.rm(library_file_name)
 | 
						|
}
 | 
						|
 | 
						|
fn v_compile(vopts string) os.Result {
 | 
						|
	cmd := '"$vexe" -showcc $vopts'
 | 
						|
	eprintln('>>> v_compile cmd: $cmd')
 | 
						|
	res := os.exec(cmd) or { panic(err) }
 | 
						|
	eprintln('>>> v_compile res: $res')
 | 
						|
	// assert res.exit_code == 0
 | 
						|
	$if !windows {
 | 
						|
		os.system('dir $cfolder -a -l')
 | 
						|
	} $else {
 | 
						|
		os.system('dir $cfolder /a')
 | 
						|
	}
 | 
						|
	return res
 | 
						|
}
 |