cgen: fix the tests
							parent
							
								
									b2d1f55702
								
							
						
					
					
						commit
						7ad1441c81
					
				|  | @ -43,7 +43,7 @@ pub fn cgen(files []ast.File, table &table.Table) string { | |||
| 		g.stmts(file.stmts) | ||||
| 	} | ||||
| 	g.write_variadic_types() | ||||
| 	g.write_str_definitions() | ||||
| 	// g.write_str_definitions()
 | ||||
| 	g.write_init_function() | ||||
| 	return g.typedefs.str() + g.definitions.str() + g.out.str() | ||||
| } | ||||
|  | @ -57,6 +57,7 @@ pub fn (g mut Gen) init() { | |||
| 	g.definitions.writeln('\nstring _STR_TMP(const char*, ...);\n') | ||||
| 	g.write_builtin_types() | ||||
| 	g.write_typedef_types() | ||||
| 	g.write_str_definitions() | ||||
| 	g.write_sorted_types() | ||||
| 	g.write_multi_return_types() | ||||
| 	g.definitions.writeln('// end of definitions #endif') | ||||
|  | @ -1591,13 +1592,12 @@ string _STR_TMP(const char *fmt, ...) { | |||
| 	//puts(g_str_buf);
 | ||||
| #endif | ||||
| 	return tos2(g_str_buf); | ||||
| } | ||||
| } // endof _STR_TMP
 | ||||
| 
 | ||||
| ') | ||||
| } | ||||
| 
 | ||||
| const ( | ||||
| // TODO all builtin types must be lowercase
 | ||||
| 	builtins = ['string', 'array', 'KeyValue', 'DenseArray', 'map', 'Option'] | ||||
| ) | ||||
| 
 | ||||
|  | @ -1625,7 +1625,6 @@ fn (g mut Gen) write_sorted_types() { | |||
| 	types_sorted := g.sort_structs(types) | ||||
| 	// Generate C code
 | ||||
| 	g.definitions.writeln('// builtin types:') | ||||
| 	// g.write_types(builtin_types)
 | ||||
| 	g.definitions.writeln('//------------------ #endbuiltin') | ||||
| 	g.write_types(types_sorted) | ||||
| } | ||||
|  |  | |||
|  | @ -23,7 +23,14 @@ fn test_c_files() { | |||
| 		ctext = ctext // unused warn
 | ||||
| 		mut b := builder.new_builder(pref.Preferences{}) | ||||
| 		b.module_search_paths = ['$vroot/vlib/v/gen/tests/'] | ||||
| 		res := b.gen_c([path]).after('#endbuiltin') | ||||
| 		mut res := b.gen_c([path]).after('#endbuiltin') | ||||
| 		if res.contains('string _STR') { | ||||
| 			pos := res.index('string _STR') or { | ||||
| 				-1 | ||||
| 			} | ||||
| 			end := res.index_after('endof _STR_TMP', pos) | ||||
| 			res = res[..pos] + res[end + 15..] | ||||
| 		} | ||||
| 		if compare_texts(res, ctext, path) { | ||||
| 			println('${term_ok} ${i}') | ||||
| 		} | ||||
|  | @ -47,6 +54,15 @@ fn compare_texts(a, b, path string) bool { | |||
| 	*/ | ||||
| 
 | ||||
| 	for i, line_a in lines_a { | ||||
| 		// mut j := 0
 | ||||
| 		// for i := 0; i < lines_a.len; i++ {
 | ||||
| 		// line_a := lines_a[i]
 | ||||
| 		// if line_a.contains('string _STR') {
 | ||||
| 		// println(' SKIPPING!!')
 | ||||
| 		// for !lines_a[i].contains('}') {
 | ||||
| 		// i++
 | ||||
| 		// }
 | ||||
| 		// }
 | ||||
| 		if i >= lines_b.len { | ||||
| 			println(line_a) | ||||
| 			return false | ||||
|  |  | |||
|  | @ -304,6 +304,7 @@ typedef array array_u64; | |||
| typedef map map_int; | ||||
| typedef map map_string; | ||||
| typedef byte array_fixed_byte_300 [300]; | ||||
| typedef byte array_fixed_byte_400 [400]; | ||||
| #ifndef bool | ||||
| 	typedef int bool; | ||||
| 	#define true 1 | ||||
|  |  | |||
|  | @ -76,7 +76,13 @@ void end() { | |||
| 
 | ||||
| 
 | ||||
| int main(int argc, char** argv) { | ||||
| 	_init(); | ||||
| 	os__args = os__init_os_args(argc, (byteptr*)argv); | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| void _init() { | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -63,6 +63,8 @@ void handle_expr(Expr e) { | |||
| } | ||||
| 
 | ||||
| int main(int argc, char** argv) { | ||||
| 	_init(); | ||||
| 	os__args = os__init_os_args(argc, (byteptr*)argv); | ||||
| 	User user = (User){ | ||||
| 0}; | ||||
| 	user.age = 10; | ||||
|  | @ -74,3 +76,7 @@ int main(int argc, char** argv) { | |||
| 0}); | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| void _init() { | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -22,7 +22,9 @@ int Foo_testa(Foo* f); | |||
| int Foo_testb(Foo* f); | ||||
| int Bar_testa(Bar* b); | ||||
| 
 | ||||
| int main() { | ||||
| int main(int argc, char** argv) { | ||||
| 	_init(); | ||||
| 	os__args = os__init_os_args(argc, (byteptr*)argv); | ||||
|     Bar b = (Bar){ | ||||
|         .a = 122, | ||||
|     }; | ||||
|  | @ -91,3 +93,6 @@ int Foo_testb(Foo* f) { | |||
| int Bar_testa(Bar* b) { | ||||
|     return 4; | ||||
| } | ||||
| 
 | ||||
| void _init() { | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue