aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/variadic_functions.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/variadic_functions.sh')
-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