aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2019-09-21 13:59:39 +0200
committerdec05eba <dec05eba@protonmail.com>2020-07-25 14:36:46 +0200
commitc811a743a1528db1d05970e1aa14162ef7c70b75 (patch)
tree4560ab5d9084c385946415e9fc2dbf187e26c844 /tests
parent142a13ad3f77c0ad1bd321d1a1f864a5117896d1 (diff)
Implement vararg, verify arguments to parameters
Diffstat (limited to 'tests')
-rw-r--r--tests/bytecode.amal30
-rw-r--r--tests/errors/return_borrow.amal1
-rw-r--r--tests/main.c4
3 files changed, 7 insertions, 28 deletions
diff --git a/tests/bytecode.amal b/tests/bytecode.amal
index 6941bc8..d27a240 100644
--- a/tests/bytecode.amal
+++ b/tests/bytecode.amal
@@ -1,31 +1,5 @@
-/*
-extern const print_extern: fn() i32;
-extern const print_extern_num: fn(num: i32) i32;
+extern const printf: fn(fmt: ?*c_char, ...) c_int;
-const print = fn() i32 {
- return 0;
-}
-
-const main = fn {
- var value = 23;
- value = 34;
- const value2: i64 = 54;
- const value3 = 2 + 5 - 1 * 10 / 2;
- const str_value = "hello, world";
- print();
- if value2 == 54
- const result = print_num(1337);
-}
-
-const print_num = fn(num: i32) i32 {
- print_extern();
- print_extern_num(num);
- print_extern_num(8080);
- return num;
-}
-*/
-
-const io = @import("../std/io.amal");
const main = fn {
- io.print();
+ printf("hello, world!\n");
}
diff --git a/tests/errors/return_borrow.amal b/tests/errors/return_borrow.amal
new file mode 100644
index 0000000..ed1a043
--- /dev/null
+++ b/tests/errors/return_borrow.amal
@@ -0,0 +1 @@
+const func = fn() *str {} \ No newline at end of file
diff --git a/tests/main.c b/tests/main.c
index 019f8d9..0b3a744 100644
--- a/tests/main.c
+++ b/tests/main.c
@@ -251,6 +251,10 @@ static void test_load(const char *filepath) {
fprintf(stderr, "Unexpected error (alloc failure)\n");
FAIL_TEST_CLEANUP(full_path);
}
+ if(amal_program_register_extern_func(&program, create_buffer_view_auto("printf"), printf, sizeof(const char*)) != 0) {
+ fprintf(stderr, "Unexpected error (alloc failure)\n");
+ FAIL_TEST_CLEANUP(full_path);
+ }
result = amal_compiler_load_file(&options, &program, filepath);
if(result != AMAL_COMPILER_OK) {