aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-01-10 00:33:08 +0900
committernsfisis <nsfisis@gmail.com>2026-01-10 00:44:50 +0900
commit8f0fa8d70ce08ee0347a5880d44faab8307b72f6 (patch)
tree44f633c60ad6066772b66402a737096c4c21cbd4 /tests
parent97980c1f3896a630e146fb12d475edbb6c52cbf7 (diff)
downloadducc-8f0fa8d70ce08ee0347a5880d44faab8307b72f6.tar.gz
ducc-8f0fa8d70ce08ee0347a5880d44faab8307b72f6.tar.zst
ducc-8f0fa8d70ce08ee0347a5880d44faab8307b72f6.zip
feat: implement va_arg()
Diffstat (limited to 'tests')
-rw-r--r--tests/variadic_functions.sh20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/variadic_functions.sh b/tests/variadic_functions.sh
index 4f899ee..155fc1a 100644
--- a/tests/variadic_functions.sh
+++ b/tests/variadic_functions.sh
@@ -29,3 +29,23 @@ int main() {
return 0;
}
EOF
+
+test_exit_code 0 <<'EOF'
+#include <stdarg.h>
+#include <helpers.h>
+
+int sum(int n, ...) {
+ va_list args;
+ va_start(args, n);
+ int s = 0;
+ for (int i = 0; i < n; ++i) {
+ s += va_arg(args, int);
+ }
+ va_end(args);
+ return s;
+}
+
+int main() {
+ ASSERT_EQ(400, sum(5, 100, 90, 80, 70, 60));
+}
+EOF