1- use crate :: { errors :: CompilerError , parser } ;
1+ use std :: { path :: PathBuf , process :: Command } ;
22
3- #[ test]
4- fn compiler_binary_op_test ( ) {
5- let sdk = file_system:: read_file ( "../examples/binary_ops.az" ) ;
6- assert ! ( sdk. is_ok( ) ) ;
7-
8- let parsed_program = parser ( sdk. unwrap ( ) ) ;
9- assert ! ( parsed_program. is_ok( ) ) ;
3+ use crate :: { errors:: CompilerError , libc_checker, parser} ;
4+ /*
5+ *
6+ * I change my mind, github actions will not test this code.
7+ *
8+ * */
109
11- let _ = parsed_program. unwrap ( ) ;
12- }
1310#[ test]
14- fn compiler_float_test ( ) {
15- let sdk = file_system:: read_file ( "../examples/float.az" ) ;
16- assert ! ( sdk. is_ok( ) ) ;
17-
18- let parsed_program = parser ( sdk. unwrap ( ) ) ;
19- assert ! ( parsed_program. is_ok( ) ) ;
20-
21- let _ = parsed_program. unwrap ( ) ;
11+ fn compiler_output_file ( ) -> Result < ( ) , CompilerError > {
12+ let linker = libc_checker:: libc_link_checker ( ) . expect ( "Error" ) ;
13+
14+ let main_file: PathBuf = PathBuf :: from ( "main.ssa" ) ;
15+ file_system:: write_file (
16+ & main_file,
17+ "
18+ function w $add(w %a, w %b) { # Define a function add
19+ @start
20+ %c =w add %a, %b # Adds the 2 arguments
21+ ret %c # Return the result
2222}
23- #[ test]
24- fn compiler_condition_test ( ) {
25- let sdk = file_system:: read_file ( "../examples/if.az" ) ;
26- assert ! ( sdk. is_ok( ) ) ;
27-
28- let parsed_program = parser ( sdk. unwrap ( ) ) ;
29- assert ! ( parsed_program. is_ok( ) ) ;
3023
31- let _ = parsed_program. unwrap ( ) ;
24+ export function w $main() { # Main function
25+ @start
26+ %r =w call $add(w 1, w 1) # Call add(1, 1)
27+ call $printf(l $fmt, ..., w %r) # Show the result
28+ ret 0
29+ }
30+ data $fmt = { b \" One and one make %d!\n \" , b 0 }
31+ "
32+ . to_string ( ) ,
33+ ) ?;
34+ Command :: new ( "qbe" )
35+ . args ( [ "-o" , "main.s" , "main.ssa" ] )
36+ . status ( )
37+ . expect ( "Error" ) ;
38+ Command :: new ( "as" )
39+ . args ( [ "main.s" , "-o" , "main.o" ] )
40+ . status ( )
41+ . expect ( "Error" ) ;
42+ Command :: new ( linker)
43+ . args ( [
44+ "-dynamic-linker" ,
45+ "/lib64/ld-linux-x86-64.so.2" ,
46+ "/usr/lib/Scrt1.o" ,
47+ "main.o" ,
48+ "-L/usr/lib" ,
49+ "-lc" ,
50+ "/usr/lib/crtn.o" ,
51+ "-o" ,
52+ "app" ,
53+ ] )
54+ . status ( )
55+ . expect ( "Error" ) ;
56+ Ok ( ( ) )
3257}
33- #[ test]
34- fn compiler_function_test ( ) {
35- let sdk = file_system:: read_file ( "../examples/square.az" ) ;
36- assert ! ( sdk. is_ok( ) ) ;
37-
38- let parsed_program = parser ( sdk. unwrap ( ) ) ;
39- assert ! ( parsed_program. is_ok( ) ) ;
40-
41- let _ = parsed_program. unwrap ( ) ;
42- }
0 commit comments