diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ddeac8444c873385e6dfe8ba565c674ebe569a77..e1d1a28dcab9763be645dc74e72a859fab0ae392 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -88,14 +88,14 @@ just in case, it'd be a good idea to map inputs to variables.
 #include "string.h"
 #include "stdio.h"
 
-int main() {
-	// Don't do this
-	printf("%d\n", strcspn("Hello", "Hi"));
-
-	// Do this
-	char *first = "Hello";
-	char *second = "Hi";
-	printf("%d\n", strcspn(first, second));
+int main(void) {
+    // Don't do this
+    printf("%d\n", strcspn("Hello", "Hi"));
+
+    // Do this
+    char *first = "Hello";
+    char *second = "Hi";
+    printf("%d\n", strcspn(first, second));
 }
 ```
 
@@ -120,4 +120,4 @@ You can test against verified correct output with `make verify` in the tests
 directory. You will need to manually create the correct output and put it in the
 tests/expected directory. Running any `make` commands in the tests directory
 will ***not*** rebuild relibc, so you'll need to go back to the root directory
-if you need to rebuild relibc.
\ No newline at end of file
+if you need to rebuild relibc.
diff --git a/include/bits/ctype.h b/include/bits/ctype.h
new file mode 100644
index 0000000000000000000000000000000000000000..e5dedf5d304a1da9724e6e27226cda1dfa75c35d
--- /dev/null
+++ b/include/bits/ctype.h
@@ -0,0 +1,7 @@
+#ifndef _BITS_CTYPE_H
+#define _BITS_CTYPE_H
+
+#define _tolower(c) tolower(c)
+#define _toupper(c) toupper(c)
+
+#endif /* _BITS_CTYPE_H */
diff --git a/include/bits/sys/time.h b/include/bits/sys/time.h
index 0b4f8f285c7edf59a09255afbca9648780757cf5..73b0683f5c2e76a9f6ab2d6bbe14cfc38902803c 100644
--- a/include/bits/sys/time.h
+++ b/include/bits/sys/time.h
@@ -14,10 +14,10 @@
         (t)->tv_sec = 0, \
         (t)->tv_usec = 0 \
     )
-#define timerisset(t) (t)->tv_sec || (t)->tv_usec
-#define timercmp(x,y,op) (x)->tv_sec == (y)->tv_sec ? \
+#define timerisset(t) ((t)->tv_sec || (t)->tv_usec)
+#define timercmp(x,y,op) ((x)->tv_sec == (y)->tv_sec ? \
     (x)->tv_usec op (y)->tv_usec \
     : \
-    (x)->tv_sec op (y)->tv_sec
+    (x)->tv_sec op (y)->tv_sec)
 
 #endif
diff --git a/src/header/ctype/cbindgen.toml b/src/header/ctype/cbindgen.toml
index 4fadb8447717c3292b035e2431bb369d23550cf6..eb9b10d151ba60ce40118f1d63658e44f093a233 100644
--- a/src/header/ctype/cbindgen.toml
+++ b/src/header/ctype/cbindgen.toml
@@ -1,4 +1,4 @@
-sys_includes = []
+sys_includes = ["bits/ctype.h"]
 include_guard = "_CTYPE_H"
 language = "C"
 style = "Tag"
diff --git a/src/header/unistd/cbindgen.toml b/src/header/unistd/cbindgen.toml
index 2c03074df9c2f42ddbf8eb750694249ddcf6002d..585796ed3467e10dadcdd67ad7b8a56bbfdb1811 100644
--- a/src/header/unistd/cbindgen.toml
+++ b/src/header/unistd/cbindgen.toml
@@ -6,3 +6,7 @@ style = "Tag"
 
 [enum]
 prefix_with_name = true
+
+[defines]
+"target_os = linux" = "__linux__"
+"target_os = redox" = "__redox__"
diff --git a/tests/Makefile b/tests/Makefile
index d90078cfd11f083c49e6850580192035157a4265..30efeddaeca20c4250866f61a7d37ab6115f8b96 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -150,10 +150,12 @@ verify: | ../sysroot $(EXPECT_BINS)
 	done
 
 CFLAGS=\
+	-std=c11 \
 	-fno-builtin \
 	-fno-stack-protector \
 	-static \
 	-Wall \
+	-pedantic \
 	-g \
 	-nostdinc \
 	-nostdlib \
diff --git a/tests/alloca.c b/tests/alloca.c
index 990bd49b356a3ba7e135556b0673e56c0183b5ff..3d774c5fccae729e8d7ba258ac25c483382e77d0 100644
--- a/tests/alloca.c
+++ b/tests/alloca.c
@@ -2,7 +2,7 @@
 #include <stdio.h>
 #include <string.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
     char *str = (char *) alloca(17);
 
     memset(str, 'A', 16);
diff --git a/tests/args.c b/tests/args.c
index fd9c779701a1820d4e1484a3f42f1eb20e3cde48..49e7ae0ff4d127792f3ddfe7903480cea5eb4dcf 100644
--- a/tests/args.c
+++ b/tests/args.c
@@ -1,12 +1,11 @@
 #include <string.h>
 #include <unistd.h>
 
-int main(int argc, char ** argv) {
+int main(int argc, char *argv[]) {
     int i;
     for(i = 0; i < argc; i++) {
         write(STDOUT_FILENO, argv[i], strlen(argv[i]));
         write(STDOUT_FILENO, " ", 1);
     }
     write(STDOUT_FILENO, "\n", 1);
-    return 0;
 }
diff --git a/tests/arpainet.c b/tests/arpainet.c
index c93f3933c223d21fed89e58858e2bf1a1efbc7b2..cae9921b5490f8025dd8bb4a4af178615138ac0f 100644
--- a/tests/arpainet.c
+++ b/tests/arpainet.c
@@ -3,7 +3,7 @@
 #include <string.h>
 #include <stdlib.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     uint32_t hl = 0xBADFACED;
     uint32_t nl = htonl(hl);
     assert(nl == 0xEDACDFBA);
diff --git a/tests/assert.c b/tests/assert.c
index 7f98bbe9c578705b5e79f799121253ad9b6b8765..0ab46cafa2d41ecf512ec216c35e5f040b30e881 100644
--- a/tests/assert.c
+++ b/tests/assert.c
@@ -2,7 +2,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-int main() {
+int main(void) {
     assert(1 == 1);
     assert(1 + 1 == 2);
     puts("yay!");
diff --git a/tests/constructor.c b/tests/constructor.c
index 4a5a4fa55e50065534e996fdeb1edda64d67955e..38fc58cbaf9fd037751e3cf122939e07636272c4 100644
--- a/tests/constructor.c
+++ b/tests/constructor.c
@@ -11,11 +11,11 @@ void constructor_no_priority(void) {
         puts("constructor ("#__priority")");       \
     }
 
-TEST(101);
-TEST(102);
-TEST(103);
-TEST(104);
+TEST(101)
+TEST(102)
+TEST(103)
+TEST(104)
 
-int main(int argc, char *argv[]) {
+int main(void) {
     puts("main");
 }
diff --git a/tests/ctype.c b/tests/ctype.c
index 46682640b51f161a0e27a8533fe24edbf53fcbb0..1dd70680f246f7339232185f8e98f41e3741ebeb 100644
--- a/tests/ctype.c
+++ b/tests/ctype.c
@@ -1,5 +1,6 @@
 #include <ctype.h>
 #include <stdio.h>
+#include <stdlib.h>
 
 struct test_case {
     int c;
@@ -289,12 +290,12 @@ size_t num_test_cases = sizeof(test_cases) / sizeof(struct test_case);
 
 #define CHECK_TEST(tc, fn, retval) \
     if (fn(tc.c) != tc.fn) { \
-        retval = -1; \
+        retval = EXIT_FAILURE; \
         printf("Unexpected result: " #fn "('%c') != %d // Char value: %d\n", tc.c, tc.fn, tc.c); \
     }
 
-int main(int argc, char* argv[]) {
-    int retval = 0;
+int main(void) {
+    int retval = EXIT_SUCCESS;
 
     for(int i = 0; i < num_test_cases; ++i) {
         struct test_case tc = test_cases[i];
@@ -316,7 +317,7 @@ int main(int argc, char* argv[]) {
         CHECK_TEST(tc, toupper, retval);
     }
 
-    if (!retval) {
+    if (retval == EXIT_SUCCESS) {
         printf("Success: %d\n", retval);
     } else {
         printf("Failure: %d\n", retval);
diff --git a/tests/destructor.c b/tests/destructor.c
index af3e1416bffdcda9efbaf672c782d79b55e5c80f..40840ccde6ea8eb69bdf9b728a75018c3d9efa05 100644
--- a/tests/destructor.c
+++ b/tests/destructor.c
@@ -11,11 +11,11 @@ void destructor_no_priority(void) {
         puts("destructor ("#__priority")");       \
     }
 
-TEST(101);
-TEST(102);
-TEST(103);
-TEST(104);
+TEST(101)
+TEST(102)
+TEST(103)
+TEST(104)
 
-int main(int argc, char *argv[]) {
+int main(void) {
     puts("main");
 }
diff --git a/tests/dirent/main.c b/tests/dirent/main.c
index 08cea692963659615812aa8df53211ceb69c3122..92a4fe24674b32ab5dffbd56a393ef4ab5a0ac28 100644
--- a/tests/dirent/main.c
+++ b/tests/dirent/main.c
@@ -1,15 +1,16 @@
 #include <dirent.h>
 #include <errno.h>
 #include <stdio.h>
+#include <stdlib.h>
 
-int main() {
+int main(void) {
     printf("%lu\n", sizeof(struct dirent));
 
     DIR* dir = opendir("example_dir/");
 
     if (dir == NULL) {
         perror("opendir");
-        return 1;
+        return EXIT_FAILURE;
     }
 
     struct dirent* entry;
@@ -37,6 +38,4 @@ int main() {
     // puts(entry->d_name);
 
     closedir(dir);
-
-    return 0;
 }
diff --git a/tests/dirent/scandir.c b/tests/dirent/scandir.c
index 383a6ca0b139781742184df2e0cefc592834f4b8..8bbee0d13f8e2046a39f204079d0a2bc3c97713a 100644
--- a/tests/dirent/scandir.c
+++ b/tests/dirent/scandir.c
@@ -7,12 +7,12 @@ int filter(const struct dirent* dirent) {
     return strstr(dirent->d_name, "3") == NULL;
 }
 
-int main() {
+int main(void) {
     struct dirent** array;
     int len = scandir("example_dir/", &array, filter, alphasort);
     if (len < 0) {
         perror("scandir");
-        return -1;
+        return EXIT_FAILURE;
     }
 
     for(int i = 0; i < len; i += 1) {
diff --git a/tests/error.c b/tests/error.c
index 0b539992d475fb9b66d151c8c7ab60bd2b876f57..09756286f8a30fc84b2524a103c225f9e3adba12 100644
--- a/tests/error.c
+++ b/tests/error.c
@@ -3,9 +3,8 @@
 #include <string.h>
 #include <errno.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     chdir("nonexistent");
     printf("errno: %d = %s\n", errno, strerror(errno));
     perror("perror");
-    return 0;
 }
diff --git a/tests/expected/time/time.stderr b/tests/expected/time/time.stderr
index b19be1d86ccea100aa1b039acf0316326c854b0c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644
--- a/tests/expected/time/time.stderr
+++ b/tests/expected/time/time.stderr
@@ -1,3 +0,0 @@
-clock_gettime: Success
-time: Success
-clock: Success
diff --git a/tests/fcntl/create.c b/tests/fcntl/create.c
index 864496830b35d8bfffd587514c34cdbafd6d55e0..c881270c2f3c79fccccbe1da3913d1677f0240e5 100644
--- a/tests/fcntl/create.c
+++ b/tests/fcntl/create.c
@@ -1,14 +1,15 @@
 #include <fcntl.h>
+#include <stdlib.h>
 #include <unistd.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
     int fd = creat("create.out", 0755);
     if (fd >= 0) {
         write(fd, "Hello World!\n", 13);
         close(fd);
-        return 0;
+        return EXIT_SUCCESS;
     } else {
         write(STDERR_FILENO, "creat failed\n", 13);
-        return 1;
+        return EXIT_FAILURE;
     }
 }
diff --git a/tests/fcntl/fcntl.c b/tests/fcntl/fcntl.c
index 4ce261d18828fcb85c3bb3d5cfcbbc9fe7ef5222..3ec16a84d145c3952983b4bf236dbf5a1c58c1e1 100644
--- a/tests/fcntl/fcntl.c
+++ b/tests/fcntl/fcntl.c
@@ -2,7 +2,7 @@
 #include <stdio.h>
 #include <unistd.h>
 
-int main() {
+int main(void) {
     //Lose our fd and pull it again
     creat("fcntl.out", 0777);
     int newfd = open("fcntl.out", 0);
@@ -10,5 +10,4 @@ int main() {
     printf("fd %d duped into fd %d\n", newfd, newfd2);
     close(newfd);
     close(newfd2);
-    return 0;
 }
diff --git a/tests/fnmatch.c b/tests/fnmatch.c
index 4d10a642ef6318ff17ae6ec8e1897047cbba696e..9fa673f539f1ec14fa0bb692fadd6509c082599f 100644
--- a/tests/fnmatch.c
+++ b/tests/fnmatch.c
@@ -9,7 +9,7 @@ void test(char* pattern, char* input, int flags) {
     }
 }
 
-int main() {
+int main(void) {
     puts("Should succeed:");
     test("*World", "Hello World", 0);
     test("*World", "World", 0);
diff --git a/tests/libgen.c b/tests/libgen.c
index f38f70f0f01cdd36025482ca61169e1e5d1989c3..91b18a4f3cbc5a6f1fdc428bb67dd3873a34e20e 100644
--- a/tests/libgen.c
+++ b/tests/libgen.c
@@ -18,7 +18,7 @@ char * get_mutable_string(char *str) {
   return copy;
 }
 
-void test_basename() {
+void test_basename(void) {
   test_case test_cases[] =
   { {"/usr/lib", "lib"},
     {"//usr//lib//", "lib"},
@@ -44,7 +44,7 @@ void test_basename() {
   return;
 }
 
-void test_dirname() {
+void test_dirname(void) {
   test_case test_cases[] =
   { {"/usr/lib", "/usr"},
     {"//usr//lib//", "//usr"},
@@ -73,9 +73,8 @@ void test_dirname() {
   return;
 }
 
-int main() {
+int main(void) {
   printf("Testing libgen.h\n");
   test_basename();
   test_dirname();
-  return 0;
 }
diff --git a/tests/locale.c b/tests/locale.c
index 9358bc5554319b7dbfdc3ef62bfdb90a519c008f..dde3364da4728c1aff54691a694f9f718e8befce 100644
--- a/tests/locale.c
+++ b/tests/locale.c
@@ -2,7 +2,7 @@
 #include <stdio.h>
 #include <string.h>
 
-int main() {
+int main(void) {
     // TODO: Implement locale properly and test it here
     char* val = setlocale(LC_ALL, NULL);
     if (strcmp(val, "C") == 0) {
diff --git a/tests/math.c b/tests/math.c
index fb53fa2438dbff7a1e3b392b9ff8bda42928fe75..9f485b1b0e3fd66108853c0d9e15b25d73c1c955 100644
--- a/tests/math.c
+++ b/tests/math.c
@@ -1,9 +1,8 @@
 #include <math.h>
 #include <stdio.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
     double pi = 3.14;
     float c = cos(pi);
     printf("cos(%f) = %f\n", pi, c);
-    return 0;
 }
diff --git a/tests/netdb/getaddrinfo.c b/tests/netdb/getaddrinfo.c
index 3864d0d9903b788b4c3c49a6d5c440187b2d4b94..1c92a8630797efc0b5a88248418bb6be3d02aaa7 100644
--- a/tests/netdb/getaddrinfo.c
+++ b/tests/netdb/getaddrinfo.c
@@ -22,7 +22,7 @@ int main(void) {
     errcode = getaddrinfo("www.redox-os.org", NULL, &hints, &res);
     if (errcode != 0) {
         perror("getaddrinfo");
-        return -1;
+        return EXIT_FAILURE;
     }
 
     while (res) {
@@ -45,6 +45,4 @@ int main(void) {
 
         res = res->ai_next;
     }
-
-    return 0;
 }
diff --git a/tests/netdb/netdb.c b/tests/netdb/netdb.c
index 9bbbf3e2834ef7964c4611aa2538b5a2f670e9e1..d81f08d632a0c76b0d6c10fc2039946f34c74992 100644
--- a/tests/netdb/netdb.c
+++ b/tests/netdb/netdb.c
@@ -225,6 +225,6 @@ do_test (void)
   return (error_count != 0);
 }
 
-int main() {
+int main(void) {
     do_test();
 }
diff --git a/tests/pwd.c b/tests/pwd.c
index 52b3511675dab441f07c9aa605c5161b885a0f4b..029972c7b78bd3d97853b1688ac3bab2e166e124 100644
--- a/tests/pwd.c
+++ b/tests/pwd.c
@@ -13,13 +13,13 @@ void print(struct passwd *pwd) {
     printf("pw_shell: %s\n", pwd->pw_shell);
 }
 
-int main() {
+int main(void) {
     puts("--- Checking getpwuid ---");
     errno = 0;
     struct passwd *pwd = getpwuid(0);
     if (errno != 0) {
         perror("getpwuid");
-        return 1;
+        return EXIT_FAILURE;
     }
     if (pwd != NULL) {
         print(pwd);
@@ -30,7 +30,7 @@ int main() {
     pwd = getpwnam("nobody");
     if (errno != 0) {
         perror("getpwnam");
-        return 1;
+        return EXIT_FAILURE;
     }
     if (pwd != NULL) {
         print(pwd);
@@ -43,12 +43,12 @@ int main() {
     if (getpwuid_r(0, &pwd2, buf, 100, &result) < 0) {
         perror("getpwuid_r");
         free(buf);
-        return 1;
+        return EXIT_FAILURE;
     }
     if (result != NULL) {
         if (result != &pwd2) {
             free(buf);
-            return 1;
+            return EXIT_FAILURE;
         }
         print(&pwd2);
     }
@@ -57,12 +57,12 @@ int main() {
     if (getpwnam_r("nobody", &pwd2, buf, 100, &result) < 0) {
         perror("getpwuid_r");
         free(buf);
-        return 1;
+        return EXIT_FAILURE;
     }
     if (result != NULL) {
         if (result != &pwd2) {
             free(buf);
-            return 1;
+            return EXIT_FAILURE;
         }
         print(&pwd2);
     }
@@ -72,11 +72,11 @@ int main() {
     char buf2[1];
     if (getpwuid_r(0, &pwd2, buf2, 1, &result) == 0) {
         puts("This shouldn't have succeeded, but did!");
-        return 1;
+        return EXIT_FAILURE;
     }
     if (errno != ERANGE) {
         perror("getpwuid_r");
-        return 1;
+        return EXIT_FAILURE;
     }
     puts("Returned ERANGE because the buffer was too small 👍");
 }
diff --git a/tests/regex.c b/tests/regex.c
index 432a8b546ed2fb0fa7f29473bb3ef077a998e28a..e920b601d367e113ccb46394393ab512d26c47ad 100644
--- a/tests/regex.c
+++ b/tests/regex.c
@@ -1,7 +1,8 @@
 #include <regex.h>
 #include <stdio.h>
+#include <stdlib.h>
 
-int main() {
+int main(void) {
     regex_t regex;
     char error_buf[256];
 
@@ -10,10 +11,10 @@ int main() {
         regerror(error, &regex, error_buf, 255);
         error_buf[255] = 0;
         printf("regcomp error: %d = %s\n", error, error_buf);
-        return -1;
+        return EXIT_FAILURE;
     }
 
-    regmatch_t matches[3] = { 0 };
+    regmatch_t matches[3] = {{0}};
 
     error = regexec(&regex, "Hey, how are you? Hello? Hallo Wurld??", 3, matches, 0);
 
@@ -22,7 +23,7 @@ int main() {
     if (error) {
         regerror(error, &regex, error_buf, 255);
         printf("regexec error: %d = %s\n", error, error_buf);
-        return -1;
+        return EXIT_FAILURE;
     }
 
     for (int group = 0; group < 3; group += 1) {
diff --git a/tests/resource/getrusage.c b/tests/resource/getrusage.c
index a844335032c1622aba3abe03e24143645b83a7d0..1650dd6fc51ee91f439cf03ab2ee82db3b764611 100644
--- a/tests/resource/getrusage.c
+++ b/tests/resource/getrusage.c
@@ -6,11 +6,11 @@ void ptimeval(struct timeval* val) {
     printf("{ tv_sec: %ld, tv_usec: %ld }\n", val->tv_sec, val->tv_usec);
 }
 
-int main() {
+int main(void) {
     struct rusage r_usage;
     if (getrusage(RUSAGE_SELF, &r_usage) < 0) {
         perror("getrusage");
-        return 1;
+        return EXIT_FAILURE;
     }
     printf("ru_utime:");
     ptimeval(&r_usage.ru_utime);
diff --git a/tests/select.c b/tests/select.c
index ba053a1e09b1bc522953c34d620c00677157b250..596a589a832615b34101840c5fbb13b31301d686 100644
--- a/tests/select.c
+++ b/tests/select.c
@@ -3,7 +3,7 @@
 #include <sys/select.h>
 #include <unistd.h>
 
-int main() {
+int main(void) {
     int fd = open("select.c", 0, 0);
 
     fd_set read;
diff --git a/tests/setjmp.c b/tests/setjmp.c
index c45390bf4a21241007069f8b1f260ccc05851647..fe117e4dec9d75c14821399b46132569e6d1bfe3 100644
--- a/tests/setjmp.c
+++ b/tests/setjmp.c
@@ -1,7 +1,7 @@
 #include <stdio.h>
 #include <setjmp.h>
 
-int main() {
+int main(void) {
     jmp_buf buf;
     if (setjmp(buf)) {
         puts("hi from jump");
diff --git a/tests/signal.c b/tests/signal.c
index 7f41785613ea33d76d217a86b7be639e0906c41d..1a480045070f02e5b4263e89d5576e3d84019f20 100644
--- a/tests/signal.c
+++ b/tests/signal.c
@@ -1,5 +1,6 @@
 #include <signal.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <unistd.h>
 #include <errno.h>
 
@@ -7,18 +8,18 @@ void handler(int sig) {
     puts("Signal handler called!");
 }
 
-int main() {
+int main(void) {
     if (signal(SIGUSR1, &handler) == SIG_ERR) {
         puts("Signal error!");
         printf("%d\n", errno);
-        return 1;
+        return EXIT_FAILURE;
     }
 
     puts("Raising...");
     if (raise(SIGUSR1)) {
         puts("Raise error!");
         printf("%d\n", errno);
-        return 1;
+        return EXIT_FAILURE;
     }
     puts("Raised.");
 }
diff --git a/tests/stdio/all.c b/tests/stdio/all.c
index 118f46541c89b0e461b67978547d6ddfca7e67df..d1e393e3074628320e9b5103f306e5c793f8c5ed 100644
--- a/tests/stdio/all.c
+++ b/tests/stdio/all.c
@@ -1,7 +1,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
 	FILE *f = fopen("stdio/stdio.in", "r");
 	printf("%c\n", fgetc(f));
 	ungetc('H', f);
@@ -9,5 +9,4 @@ int main(int argc, char ** argv) {
 	printf("%s\n", fgets(in, 30, f));
 	setvbuf(stdout, 0, _IONBF, 0);
 	printf("Hello\n");
-	return 0;
 }
diff --git a/tests/stdio/buffer.c b/tests/stdio/buffer.c
index c5d55944bfa9950bfef15ddd92c4d43a2306e1d1..50b236f14829ca9df62b969a5a336a9d06b55433 100644
--- a/tests/stdio/buffer.c
+++ b/tests/stdio/buffer.c
@@ -1,6 +1,6 @@
 #include <stdio.h>
 
-int main() {
+int main(void) {
     // Tests what used to be a bug with buffering
     fwrite("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 1, 999, stdout);
     fwrite("Test\n", 1, 5, stdout);
diff --git a/tests/stdio/fgets.c b/tests/stdio/fgets.c
index c89e491ae04acce7cf0ba19601ea1d71140901d3..e48247b98f22b2ee521d1443e4d7e66c4cb84330 100644
--- a/tests/stdio/fgets.c
+++ b/tests/stdio/fgets.c
@@ -1,6 +1,7 @@
 #include <stdio.h>
+#include <stdlib.h>
 
-int main() {
+int main(void) {
     //FILE *f = fopen("/etc/ssl/certs/ca-certificates.crt", "r");
     FILE *f = fopen("stdio/stdio.in", "r");
     char line[256];
@@ -12,7 +13,7 @@ int main() {
             puts("EOF");
             if (!feof(f)) {
                 puts("feof() not updated!");
-                return -1;
+                return EXIT_FAILURE;
             }
             break;
         }
diff --git a/tests/stdio/fputs.c b/tests/stdio/fputs.c
index 34ac5f361a99f638811112c4616c146431783fe6..52aef7da681681329bec90fd909543cbaba54fc4 100644
--- a/tests/stdio/fputs.c
+++ b/tests/stdio/fputs.c
@@ -1,11 +1,9 @@
 #include <stdio.h>
-#include <stdlib.h>
 #include <errno.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
 	FILE *f = fopen("stdio/fputs.out", "w");
 	char *in = "Hello World!";
 	fputs(in, f); // calls fwrite, helpers::fwritex, internal::to_write and internal::stdio_write
 	fclose(f);
-	return 0;
 }
diff --git a/tests/stdio/fread.c b/tests/stdio/fread.c
index 40b6f69e579b0ac406e80a5c438c53544dbf8be4..e5e13b28cbf0d62abb6eb432417cec5e11e0cbaa 100644
--- a/tests/stdio/fread.c
+++ b/tests/stdio/fread.c
@@ -1,14 +1,15 @@
 #include <errno.h>
 #include <stdio.h>
+#include <stdlib.h>
 
-int main(int argc, char *argv[]) {
+int main(void) {
     FILE *fp = fopen("stdio/fread.in", "rb");
 
     char buf[33] = { 0 };
     for (int i = 1; i <= 32; ++i) {
         if (fread(buf, 1, i, fp) < 0) {
             perror("fread");
-            return 0;
+            return EXIT_FAILURE;
         }
         buf[i] = 0;
 
@@ -16,6 +17,4 @@ int main(int argc, char *argv[]) {
     }
 
     fclose(fp);
-
-    return 0;
 }
diff --git a/tests/stdio/freopen.c b/tests/stdio/freopen.c
index 7bf3b64f20c3fcdfe351b9465c60eae7692d9a9a..e7ec2c271d3d19a745c02aec2c9eceb78a740806 100644
--- a/tests/stdio/freopen.c
+++ b/tests/stdio/freopen.c
@@ -1,9 +1,8 @@
 #include <stdio.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
 	freopen("stdio/stdio.in", "r", stdin);
 	char in[6];
 	fgets(in, 6, stdin);
 	printf("%s\n", in); // should print Hello
-	return 0;
 }
diff --git a/tests/stdio/fseek.c b/tests/stdio/fseek.c
index 84f544d2a2dee968051600c52cd7c2ca216119b5..6f166928f309af64cf65e6ed5ddf71caf5bbf3f2 100644
--- a/tests/stdio/fseek.c
+++ b/tests/stdio/fseek.c
@@ -1,10 +1,11 @@
 #include <stdio.h>
+#include <stdlib.h>
 
-int main() {
+int main(void) {
 	FILE *f = fopen("stdio/stdio.in", "r");
     if (fseek(f, 14, SEEK_CUR) < 0) {
         puts("fseek error");
-        return 1;
+        return EXIT_FAILURE;
     }
     char buffer[256];
     printf("%s", fgets(buffer, 256, f));
diff --git a/tests/stdio/fwrite.c b/tests/stdio/fwrite.c
index 85da119054336ac7a21ec858b900980c6b67e19c..9132420bffc3c88f2f102ac29ddf2359c69187aa 100644
--- a/tests/stdio/fwrite.c
+++ b/tests/stdio/fwrite.c
@@ -2,23 +2,22 @@
 #include <stdlib.h>
 #include <errno.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
 	FILE *f = fopen("stdio/fwrite.out", "w");
 	const char ptr[] = "Hello World!";
 
 	if (fwrite(ptr, 0, 17, f)) {
-		return -1;
+		return EXIT_FAILURE;
 	}
 
 	if (fwrite(ptr, 7, 0, f)) {
-		return -1;
+		return EXIT_FAILURE;
 	}
 
 	if (fwrite(ptr, 0, 0, f)) {
-		return -1;
+		return EXIT_FAILURE;
 	}
 
 	fwrite(ptr, sizeof(ptr), 1, f);
 	fclose(f);
-	return 0;
 }
diff --git a/tests/stdio/getc_unget.c b/tests/stdio/getc_unget.c
index f8008534fb0c4718f961e58c3c4a9f2dd50539a8..55eb6bbb3ed8145c1aad876e854643438145ae58 100644
--- a/tests/stdio/getc_unget.c
+++ b/tests/stdio/getc_unget.c
@@ -1,12 +1,13 @@
 #include <stdio.h>
+#include <stdlib.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
 	ungetc('h', stdin);
 	char c;
 	if ((c = getchar()) == 'h') {
 		printf("Worked!\n");
-		return 0;
+		return EXIT_SUCCESS;
 	}
 	printf("failed :( %c\n", c);
-	return 0;
+	return EXIT_FAILURE;
 }
diff --git a/tests/stdio/mutex.c b/tests/stdio/mutex.c
index 032ced27e9151f996e50bc6c02d3be92197f2fc9..d318ea3e2b372fb4d1c3ee8cf6e7b3022799d6a0 100644
--- a/tests/stdio/mutex.c
+++ b/tests/stdio/mutex.c
@@ -1,6 +1,7 @@
 #include <stdio.h>
+#include <stdlib.h>
 
-int main() {
+int main(void) {
     FILE* f = fopen("stdio/stdio.in", "r");
 
     flockfile(f);
@@ -10,17 +11,17 @@ int main() {
 
     if (!ftrylockfile(f)) {
         puts("Mutex unlocked but it shouldn't be");
-        return -1;
+        return EXIT_FAILURE;
     }
     funlockfile(f);
 
     if (ftrylockfile(f)) {
         puts("Mutex locked but it shouldn't be");
-        return -1;
+        return EXIT_FAILURE;
     }
     if (!ftrylockfile(f)) {
         puts("Mutex unlocked but it shouldn't be");
-        return -1;
+        return EXIT_FAILURE;
     }
     funlockfile(f);
 }
diff --git a/tests/stdio/popen.c b/tests/stdio/popen.c
index 9550b0ef24b5e2dbcd9d2bf41328d261ac3f939f..afa83fab0a85e382f403cdb593c9a39ee6d40c69 100644
--- a/tests/stdio/popen.c
+++ b/tests/stdio/popen.c
@@ -1,6 +1,7 @@
 #include <stdio.h>
+#include <stdlib.h>
 
-int main(int argc, char **argv) {
+int main(void) {
     FILE *fp;
     int status;
     char path[256];
@@ -9,7 +10,7 @@ int main(int argc, char **argv) {
     fp = popen("ls -1 example_dir", "r");
     if (fp == NULL) {
         perror("popen");
-        return -1;
+        return EXIT_FAILURE;
     }
 
     while (fgets(path, 256, fp) != NULL) {
@@ -20,10 +21,8 @@ int main(int argc, char **argv) {
     status = pclose(fp);
     if (status == -1) {
         perror("pclose");
-        return -1;
+        return EXIT_FAILURE;
     } else {
         printf("status %x\n", status);
     }
-
-    return 0;
 }
diff --git a/tests/stdio/printf.c b/tests/stdio/printf.c
index 3ef0c9b224caa22ab7a491adb21b079557b25ce8..ea7b8dde0233060ee0f975fef646cb1675f48e21 100644
--- a/tests/stdio/printf.c
+++ b/tests/stdio/printf.c
@@ -1,6 +1,6 @@
 #include <stdio.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
     int sofar = 0;
     int len = printf(
         "percent: %%\nstring: %s\nchar: %c\nchar: %c\nint: %d\n%nuint: %u\nhex: %x\nHEX: %X\nstring: %s\n",
@@ -48,5 +48,4 @@ int main(int argc, char ** argv) {
     printf("%G\n", 0.0001);
     printf("%G\n", 0.00001);
     printf("%E\n", 0.00001);
-    return 0;
 }
diff --git a/tests/stdio/rename.c b/tests/stdio/rename.c
index 189ba227712dd49b467503d571c7c821ffa91529..df88c5f54f3da61a245dffe7b381348222709a28 100644
--- a/tests/stdio/rename.c
+++ b/tests/stdio/rename.c
@@ -1,5 +1,6 @@
 #include <stdio.h>
 #include <fcntl.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
@@ -8,7 +9,7 @@ static char newpath[] = "new-name.out";
 static char str[] = "Hello, World!";
 int str_len = 13;
 
-int main() {
+int main(void) {
     char buf[14];
     buf[13] = 0x00;
     int fd = creat(oldpath, 0777);
@@ -20,8 +21,8 @@ int main() {
     close(fd);
     remove(newpath);
     if (strcmp(str, buf) == 0) {
-        return 0;
+        return EXIT_SUCCESS;
     } else {
-        return -1;
+        return EXIT_FAILURE;
     }
 }
diff --git a/tests/stdio/scanf.c b/tests/stdio/scanf.c
index 3f6a23663197855ba134769e6d5cada09d7172af..a19daaf3bb35f9c12b60bb16fe5f4ae31fc7ebe8 100644
--- a/tests/stdio/scanf.c
+++ b/tests/stdio/scanf.c
@@ -25,7 +25,7 @@ void test(char* fmt_in, char* input, struct params *p, ...) {
     );
 }
 
-int main(int argc, char ** argv) {
+int main(void) {
     struct params p = { .c = 'a' };
 
     test("%hhd %d", "12 345", &p, &p.sa, &p.ia);
diff --git a/tests/stdio/setvbuf.c b/tests/stdio/setvbuf.c
index 62a13aeeb59b05c2bec4a0f4598a5633a64b69c7..2b0356bf15dee4c0bdf014e002458ad83992cbea 100644
--- a/tests/stdio/setvbuf.c
+++ b/tests/stdio/setvbuf.c
@@ -1,7 +1,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
 	setvbuf(stdout, 0, _IONBF, 0);
 	FILE *f = fopen("stdio/stdio.in", "r");
 	setvbuf(f, 0, _IONBF, 0);
@@ -10,5 +10,4 @@ int main(int argc, char ** argv) {
 	char *in = malloc(30);
 	printf("%s\n", fgets(in, 30, f));
 	printf("Hello\n");
-	return 0;
 }
diff --git a/tests/stdio/sprintf.c b/tests/stdio/sprintf.c
index 7e42245bc22ef12374d6729ffa1f1570ad4f46f7..829ce59989af2905a0865859fdea9e19eb3c7a21 100644
--- a/tests/stdio/sprintf.c
+++ b/tests/stdio/sprintf.c
@@ -1,7 +1,8 @@
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
     char buffer[72];
 
     int ret = sprintf(
@@ -11,7 +12,7 @@ int main(int argc, char ** argv) {
     );
     if (ret != 68) {
         printf("Failed! Return value was %d\n", ret);
-        return -1;
+        return EXIT_FAILURE;
     }
 
     memset(buffer, 0, sizeof(buffer));
@@ -24,7 +25,7 @@ int main(int argc, char ** argv) {
     );
     if (ret != 86) {
         printf("Failed! Return value was %d\n", ret);
-        return -1;
+        return EXIT_FAILURE;
     }
 
     puts(buffer);
diff --git a/tests/stdlib/a64l.c b/tests/stdlib/a64l.c
index 8036d9e3fb0c85391effadde4986a17fc66d8bbc..7c44bb84edc3a72b2a45f22a2edbd3310952bc50 100644
--- a/tests/stdlib/a64l.c
+++ b/tests/stdlib/a64l.c
@@ -1,12 +1,12 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
     char * s = "azAZ9."; // test boundaries
     long l = a64l(s);
     if (l != 194301926) {
         printf("Invalid result: a64l(%s) = %ld\n", s, l);
-        return 1;
+        return EXIT_FAILURE;
     }
     printf("Correct a64l: %s = %ld\n", s, l);
 
@@ -15,8 +15,7 @@ int main(int argc, char* argv[]) {
     l = a64l(s);
     if (l != 53222) {
         printf("Invalid result: a64l(%s) = %ld\n", s, l);
-        return 1;
+        return EXIT_FAILURE;
     }
     printf("Correct a64l: %s = %ld\n", s, l);
-    return 0;
 }
diff --git a/tests/stdlib/alloc.c b/tests/stdlib/alloc.c
index bfb8673400f0b4b350f3e341f7345c36ec78798d..b21dfadb187c0f2231774dd339e45b35efca099c 100644
--- a/tests/stdlib/alloc.c
+++ b/tests/stdlib/alloc.c
@@ -2,7 +2,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
     char * ptr = (char *)malloc(256);
     printf("malloc %p\n", ptr);
     int i;
@@ -24,6 +24,4 @@ int main(int argc, char ** argv) {
         ptra[i] = (char)i;
     }
     free(ptra);
-
-    return 0;
 }
diff --git a/tests/stdlib/atof.c b/tests/stdlib/atof.c
index 1bfb9d0e220d4029fadb86716017705061958146..19f6e25c7753a070c56c26a8b5159bc86a9934cd 100644
--- a/tests/stdlib/atof.c
+++ b/tests/stdlib/atof.c
@@ -1,8 +1,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
     double d = atof("-3.14");
     printf("%f\n", d);
-    return 0;
 }
diff --git a/tests/stdlib/atoi.c b/tests/stdlib/atoi.c
index e9af8da95e646e7bfdc244503bd1bced71a4d3ff..3e06f29c890fdd5d0eb7ffac3912556b853e6c29 100644
--- a/tests/stdlib/atoi.c
+++ b/tests/stdlib/atoi.c
@@ -1,12 +1,11 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
     printf("%d\n", atoi("         -42"));
     printf("%d\n", atoi(" +555"));
     printf("%d\n", atoi("   1234567890    "));
     printf("%ld\n", atol("         -42"));
     printf("%ld\n", atol(" +555"));
     printf("%ld\n", atol("   1234567890    "));
-    return 0;
 }
diff --git a/tests/stdlib/bsearch.c b/tests/stdlib/bsearch.c
index efe8d46521278021be48e6574e1e120e4d834cc7..a56756a77a001a412e0f84dc9577d358709d2c27 100644
--- a/tests/stdlib/bsearch.c
+++ b/tests/stdlib/bsearch.c
@@ -13,17 +13,19 @@ int int_cmp(const void* a, const void* b) {
       size_t i = 0; \
       for (; i < len; ++i) printf("%d,", arr[i]); \
       printf("] expected %p but got %p\n", (void*) expect, res); \
-      return 1; \
+      return EXIT_FAILURE; \
     } \
   } while (0);
 
 
 
-int main(int argc, char* argv[]) {
+int main(void) {
   int x = 0;
   int y = 1024;
-  int empty[] = {};
-  BSEARCH_TEST_INT(x, empty, 0, NULL);
+
+  // TODO: Zero sized arrays are a non-standard GNU extension
+  //int empty[] = {};
+  //BSEARCH_TEST_INT(x, empty, 0, NULL);
 
   int singleton[] = {42};
   printf("%p\n%p\n", singleton, &singleton[1]);
@@ -51,5 +53,4 @@ int main(int argc, char* argv[]) {
   BSEARCH_TEST_INT(x, big, 7, NULL);
 
   printf("PASS bsearch\n");
-  return 0;
 }
diff --git a/tests/stdlib/div.c b/tests/stdlib/div.c
index 22acb9176a78cf80227188bffd16836f9d729ea2..394e8423789cd842223f8382276ba1ddc2e8a6a9 100644
--- a/tests/stdlib/div.c
+++ b/tests/stdlib/div.c
@@ -3,10 +3,9 @@
          volatile long double ld;
          volatile unsigned long long ll;
          lldiv_t mydivt;
-int
-main ()
-{
-char* tmp;
+
+int main(void) {
+         char* tmp;
          f = strtof("gnu", &tmp);
          ld = strtold("gnu", &tmp);
          ll = strtoll("gnu", &tmp, 10);
@@ -17,8 +16,5 @@ char* tmp;
          ll = mydivt.rem;
          ll = atoll("10");
          _Exit(0);
-
-  ;
-  return 0;
 }
 
diff --git a/tests/stdlib/env.c b/tests/stdlib/env.c
index e0a821c839892d27d54f31f666a7f861621ea769..83cd0b44fc569619445f88995b79b1166d137a40 100644
--- a/tests/stdlib/env.c
+++ b/tests/stdlib/env.c
@@ -2,7 +2,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-int main() {
+int main(void) {
     //puts(getenv("SHELL"));
     //puts(getenv("CC"));
 
@@ -34,7 +34,7 @@ int main() {
     if (env) {
         puts("This should be null, but isn't");
         puts(env);
-        return 1;
+        return EXIT_FAILURE;
     } else {
         puts("Value deleted successfully!");
     }
diff --git a/tests/stdlib/mkostemps.c b/tests/stdlib/mkostemps.c
index 2ada5d1f48a6732b3bc689bf6251d1cf4ef3ab86..aa544e9aa7d1818d59f70ead054ee0d5a360bc91 100644
--- a/tests/stdlib/mkostemps.c
+++ b/tests/stdlib/mkostemps.c
@@ -2,7 +2,7 @@
 #include <stdio.h>
 #include <string.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     char* file_name = (char*) calloc(18, sizeof(char));
     strcpy(file_name, "tempXXXXXX.suffix");
     int fd = mkostemps(file_name, 7, 0);
@@ -23,5 +23,4 @@ int main(int argc, char** argv) {
     }
     fclose(fp);
     remove(file_name);
-    return 0;
 }
diff --git a/tests/stdlib/mktemp.c b/tests/stdlib/mktemp.c
index eaafe83480e2d54ebf0dd95b15c1b8c646fceb3d..0a23e6ed25522f86edfc6a87082b14aa79154deb 100644
--- a/tests/stdlib/mktemp.c
+++ b/tests/stdlib/mktemp.c
@@ -2,11 +2,10 @@
 #include <stdio.h>
 #include <string.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     char* string = (char*) calloc(20, sizeof(char));
     strcpy(string, "tempXXXXXX");
     mktemp(string);
     printf("%s\n",string);
     free(string);
-    return 0;
 }
diff --git a/tests/stdlib/rand.c b/tests/stdlib/rand.c
index 484b09906b4d3555280ef0a1b7b92fc41fb0b3a8..f3883c3fdbdc9246cc422257c78a2831d340b330 100644
--- a/tests/stdlib/rand.c
+++ b/tests/stdlib/rand.c
@@ -1,7 +1,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     printf("%d\n", rand());
     srand(259);
     printf("%d\n", rand());
diff --git a/tests/stdlib/realpath.c b/tests/stdlib/realpath.c
index c6a679a4d508c28661492032ae33dfd94aa95bbd..5bcea427178714057da5e6a43f33084fbb30b516 100644
--- a/tests/stdlib/realpath.c
+++ b/tests/stdlib/realpath.c
@@ -4,11 +4,11 @@
 #include <stdlib.h>
 #include <string.h>
 
-int main() {
+int main(void) {
     char* path = realpath("stdlib/realpath.c", NULL);
     if (!path) {
         perror("realpath");
-        return -1;
+        return EXIT_FAILURE;
     }
     puts(path);
 
@@ -21,7 +21,7 @@ int main() {
     if (!path) {
         perror("realpath");
         free(path);
-        return -1;
+        return EXIT_FAILURE;
     }
     puts(path);
 
diff --git a/tests/stdlib/strtod.c b/tests/stdlib/strtod.c
index 21a728050d30ed9fa99c4ddbdfe664c08f0e1689..ae88af4db2648110d2d3585454752511cfdcd817 100644
--- a/tests/stdlib/strtod.c
+++ b/tests/stdlib/strtod.c
@@ -1,7 +1,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-int main() {
+int main(void) {
     char* endptr = 0;
     double d;
 
diff --git a/tests/stdlib/strtol.c b/tests/stdlib/strtol.c
index c088e144b9bbd49a011982a8c90c7be31a3d2ada..2977d64747fcdc6f9936f4eaab798ff7391c32e7 100644
--- a/tests/stdlib/strtol.c
+++ b/tests/stdlib/strtol.c
@@ -2,7 +2,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
     printf("%ld\n", strtol("         -42", NULL, 0));
     printf("%ld\n", strtol(" +555", NULL, 0));
     printf("%ld\n", strtol("   1234567890    ", NULL, 0));
@@ -26,6 +26,4 @@ int main(int argc, char* argv[]) {
     if(errno != 0) {
         printf("errno is not 0 (%d), something went wrong\n", errno);
     }
-
-    return 0;
 }
diff --git a/tests/stdlib/strtoul.c b/tests/stdlib/strtoul.c
index 4431a720d231ef735c1b0d07d3264be4c9f38714..afb903cb386287a4f3b5761f70682eb0e4bc4df7 100644
--- a/tests/stdlib/strtoul.c
+++ b/tests/stdlib/strtoul.c
@@ -2,7 +2,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
     printf("%ld\n", strtoul("         -42", NULL, 0));
     printf("%ld\n", strtoul(" +555", NULL, 0));
     printf("%ld\n", strtoul("   1234567890    ", NULL, 0));
@@ -25,6 +25,4 @@ int main(int argc, char* argv[]) {
     if(errno != 0) {
         printf("errno is not 0 (%d), something went wrong\n", errno);
     }
-
-    return 0;
 }
diff --git a/tests/stdlib/system.c b/tests/stdlib/system.c
index 8c4cda187c5cf8f0c266358c9444e95764c2d37c..5e9d662cd64a4ac34f736e67b5060264415a5b32 100644
--- a/tests/stdlib/system.c
+++ b/tests/stdlib/system.c
@@ -1,6 +1,5 @@
 #include <stdlib.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
     system("echo test of system");
-    return 0;
 }
diff --git a/tests/string/mem.c b/tests/string/mem.c
index 121a8f5f3b93c29e2cab705ac246df04251147ff..2b717d6c75527cb7b68294958d87890aed5c196a 100644
--- a/tests/string/mem.c
+++ b/tests/string/mem.c
@@ -2,14 +2,14 @@
 #include <stdlib.h>
 #include <string.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
     puts("# mem #");
     char arr[100];
     memset(arr, 0, 100); // Compiler builtin, should work
     arr[50] = 1;
     if ((size_t)memchr((void *)arr, 1, 100) - (size_t)arr != 50) {
         puts("Incorrect memchr");
-        exit(1);
+        return EXIT_FAILURE;
     }
     puts("Correct memchr");
     char arr2[51];
@@ -17,26 +17,25 @@ int main(int argc, char ** argv) {
     memccpy((void *)arr2, (void *)arr, 1, 100);
     if (arr[50] != 1) {
         puts("Incorrect memccpy");
-        exit(1);
+        return EXIT_FAILURE;
     }
     puts("Correct memccpy");
     int res;
     if ((res = memcmp("hello world", "hello world", 11))) {
         printf("Incorrect memcmp (1), expected 0 found %d\n", res);
-        exit(1);
+        return EXIT_FAILURE;
     }
     if ((res = memcmp("hello world", "hello worlt", 11)) >= 0) {
         printf("Incorrect memcmp (2), expected -, found %d\n", res);
-        exit(1);
+        return EXIT_FAILURE;
     }
     if ((res = memcmp("hello world", "hallo world", 5)) <= 0) {
         printf("Incorrect memcmp (3), expected +, found %d\n", res);
-        exit(1);
+        return EXIT_FAILURE;
     }
     if ((res = memcmp("hello world", "henlo world", 5)) >= 0) {
         printf("Incorrect memcmp (4), expected -, found %d\n", res);
-        exit(1);
+        return EXIT_FAILURE;
     }
     puts("Correct memcmp");
-    return 0;
 }
diff --git a/tests/string/strcat.c b/tests/string/strcat.c
index 6913c55757f738faec1b952549ce925f0826e639..0653b7f480140ccfc1be13539c185c4ead42017d 100644
--- a/tests/string/strcat.c
+++ b/tests/string/strcat.c
@@ -1,12 +1,10 @@
 #include <string.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
     char dest1[12] = "hello";
 	  printf("%s\n", strcat(dest1, " world")); // should be hello world
 
     char dest2[12] = "hello";
   	printf("%s\n", strncat(dest2, " world foobar", 6)); // should be hello world
-
-    return 0;
 }
diff --git a/tests/string/strchr.c b/tests/string/strchr.c
index 202737faac070340016b0ae714b49bcae2880588..fb2e07e056fa060c849a7e26387f1271ebe7b6a3 100644
--- a/tests/string/strchr.c
+++ b/tests/string/strchr.c
@@ -1,10 +1,8 @@
 #include <string.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
 	printf("%s\n", strchr("hello", 'e')); // should be ello
 	printf("%s\n", strchr("world", 'l')); // should be ld
 	printf("%i\n", strchr("world", 0) == NULL); // should be 1
-
-    return 0;
 }
diff --git a/tests/string/strcpy.c b/tests/string/strcpy.c
index f0c7d792590ccd67b2a6057e8c009715f3429e09..69159d738e275b70686160084fa759ad272401f4 100644
--- a/tests/string/strcpy.c
+++ b/tests/string/strcpy.c
@@ -1,7 +1,7 @@
 #include <stdio.h>
 #include <string.h>
 
-int main() {
+int main(void) {
     char dst[20];
 
     strcpy(dst, "strcpy works!");
diff --git a/tests/string/strcspn.c b/tests/string/strcspn.c
index 859d88043521ec58cf4cc72f0866012e6e048221..7370558c912acae854736f54b6648d1ddee267d0 100644
--- a/tests/string/strcspn.c
+++ b/tests/string/strcspn.c
@@ -1,10 +1,8 @@
 #include <string.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
 	char *world = "world";
 	printf("%ld\n", strcspn("hello", world)); // should be 2
 	printf("%ld\n", strcspn("banana", world)); // should be 6
-
-    return 0;
 }
diff --git a/tests/string/strncmp.c b/tests/string/strncmp.c
index efb2bea9783af619a6bdf1995ab3b4feaff6b813..fd4033c8e650369f7dc443f6f1d18600e1f2bd90 100644
--- a/tests/string/strncmp.c
+++ b/tests/string/strncmp.c
@@ -1,13 +1,11 @@
 #include <string.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
     printf("%d\n", strncmp("a", "aa", 2));
     printf("%d\n", strncmp("a", "aä", 2));
     printf("%d\n", strncmp("\xFF", "\xFE", 2));
     printf("%d\n", strncmp("", "\xFF", 1));
     printf("%d\n", strncmp("a", "c", 1));
     printf("%d\n", strncmp("a", "a", 2));
-
-    return 0;
 }
diff --git a/tests/string/strpbrk.c b/tests/string/strpbrk.c
index dc0ebf7c534c1a92ea997a7aa212f8227c2cfc5d..bb5ca56ee0d9f0adac1f99635d521f883291fda8 100644
--- a/tests/string/strpbrk.c
+++ b/tests/string/strpbrk.c
@@ -1,7 +1,7 @@
 #include <string.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
     char* source = "The quick drawn fix jumps over the lazy bug";
 
     // should be "The quick drawn fix jumps over the lazy bug"
@@ -14,7 +14,5 @@ int main(int argc, char* argv[]) {
 
     // should be "NULL"
     char* res3 = strpbrk(source, "404");
-    printf("%s\n", (res3) ? res3 : "NULL"); 
-
-    return 0;
+    printf("%s\n", (res3) ? res3 : "NULL");
 }
diff --git a/tests/string/strrchr.c b/tests/string/strrchr.c
index 7edc98040b36fb4cdafd327384c9d840a74c0ee3..d32c244ff19dc670fd3c91eb137c779fb2bb6646 100644
--- a/tests/string/strrchr.c
+++ b/tests/string/strrchr.c
@@ -1,22 +1,21 @@
 #include <string.h>
 #include <stdio.h>
+#include <stdlib.h>
 
-
-int main(int argc, char* argv[]) {
+int main(void) {
   char s0[] = "hello, world";
   char* ptr = strrchr(s0, 'l');
   if (ptr != &s0[10]) {
     printf("%p != %p\n", ptr, &s0[10]);
     printf("strrchr FAIL , exit with status code %d\n", 1);
-    return 1;
+    return EXIT_FAILURE;
   }
   char s1[] = "";
   ptr = strrchr(s1, 'a');
   if (ptr != NULL) {
     printf("%p != 0\n", ptr);
     printf("strrchr FAIL, exit with status code %d\n", 1);
-    return 1;
+    return EXIT_FAILURE;
   }
   printf("strrch PASS, exiting with status code %d\n", 0);
-  return 0;
 }
diff --git a/tests/string/strspn.c b/tests/string/strspn.c
index 52431a70ff8d3bb3c35385c4c3360534f58b4162..c198a20bf0b4bc43d862df8419663e4634aeb5fc 100644
--- a/tests/string/strspn.c
+++ b/tests/string/strspn.c
@@ -1,13 +1,11 @@
 #include <string.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
 	char *hello = "hello";
 	char *world = "world";
 	char *banana = "banana";
 	printf("%lu\n", strspn(hello, "hello")); // should be 5
 	printf("%lu\n", strspn(world, "wendy")); // should be 1
 	printf("%lu\n", strspn(banana, "apple")); // should be 0
-
-    return 0;
 }
diff --git a/tests/string/strstr.c b/tests/string/strstr.c
index cc23f070fd365170a76548f5e02f66d7b196e7ed..d36b4d915a5d888b7ea44aac25bdbc642a039dd0 100644
--- a/tests/string/strstr.c
+++ b/tests/string/strstr.c
@@ -1,12 +1,10 @@
 #include <string.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
     printf("%s\n", strstr("In relibc we trust", "rust"));
     printf("%s\n", strstr("In relibc we trust", "libc"));
     printf("%s\n", strstr("In relibc we trust", "bugs"));
     printf("%s\n", strstr("IN RELIBC WE TRUST", "rust"));
     printf("%s\n", strcasestr("IN RELIBC WE TRUST", "rust"));
-
-    return 0;
 }
diff --git a/tests/string/strtok.c b/tests/string/strtok.c
index 9809fdf054f4ca51c77a657e3d30e86af60d5ace..d2e066acb368cdfdef89ec28301f36d3e36a86b8 100644
--- a/tests/string/strtok.c
+++ b/tests/string/strtok.c
@@ -1,17 +1,15 @@
 #include <string.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
     char source[] = "I'd just like to interject for a moment.  What you're referring to as Linux, "
                     "is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux.\n";
 
     char* token = strtok(source, " ");
     while (token) {
         printf("%s", token);
-        if (token = strtok(NULL, " ")) {
+        if ((token = strtok(NULL, " "))) {
             printf("_");
         }
     }
-
-    return 0;
 }
diff --git a/tests/string/strtok_r.c b/tests/string/strtok_r.c
index 36becfe2969093dcd80246a1dcef0b03a0892770..8873635c69dc6c4fef027280c0953097e0c4a8dd 100644
--- a/tests/string/strtok_r.c
+++ b/tests/string/strtok_r.c
@@ -1,7 +1,7 @@
 #include <string.h>
 #include <stdio.h>
 
-int main(int argc, char* argv[]) {
+int main(void) {
     char source[] = "I'd just like to interject for a moment.  What you're referring to as Linux, "
                     "is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux.\n";
     char* sp;
@@ -9,10 +9,8 @@ int main(int argc, char* argv[]) {
     char* token = strtok_r(source, " ", &sp);
     while (token) {
         printf("%s", token);
-        if (token = strtok_r(NULL, " ", &sp)) {
+        if ((token = strtok_r(NULL, " ", &sp))) {
             printf("_");
         }
     }
-
-    return 0;
 }
diff --git a/tests/strings.c b/tests/strings.c
index fefb631a6800af459aef2dff3dd987c3e4fe25c8..11cdb48feb9fa35e82f1133dda8a57f38deeefc9 100644
--- a/tests/strings.c
+++ b/tests/strings.c
@@ -3,7 +3,7 @@
 #include <stdio.h>
 #include <strings.h>
 
-int main() {
+int main(void) {
     assert(!bcmp("hello", "hehe", 2));
     assert(bcmp("hello", "haha", 2));
 
diff --git a/tests/sys_utsname/uname.c b/tests/sys_utsname/uname.c
index 05ad034019bc004d0546cca99cefb57784e98a90..8e094df416cba07aa2d6dd83d65024004db2e4ed 100644
--- a/tests/sys_utsname/uname.c
+++ b/tests/sys_utsname/uname.c
@@ -1,7 +1,7 @@
 #include <stdio.h>
 #include <sys/utsname.h>
 
-int main() {
+int main(void) {
     struct utsname system_info;
 
     int result = uname(&system_info);
diff --git a/tests/time/asctime.c b/tests/time/asctime.c
index a2a3db03ff36eafe60c64af90d54409463d1f498..f2e57da1a6073a0de1c389cde97f8c46c3e44e01 100644
--- a/tests/time/asctime.c
+++ b/tests/time/asctime.c
@@ -3,14 +3,13 @@
 #include <stdlib.h>
 #include <string.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     time_t a = 0;
     struct tm *time_info = gmtime(&a);
 
     char *time_string = asctime(time_info);
 
     if (time_string == NULL || strcmp(time_string, "Thu Jan  1 00:00:00 1970\n") != 0) {
-        exit(1);
+        return EXIT_FAILURE;
     }
-    return 0;
 }
diff --git a/tests/time/gettimeofday.c b/tests/time/gettimeofday.c
index 7cd71d9aeeac569c3fc8e483d69ff88ca82ec347..a17e2aedf553ca5a10b8037254cead3b254580db 100644
--- a/tests/time/gettimeofday.c
+++ b/tests/time/gettimeofday.c
@@ -1,7 +1,7 @@
 #include <sys/time.h>
 #include <stdio.h>
 
-int main() {
+int main(void) {
     struct timeval tv;
     gettimeofday(&tv, NULL);
     printf("%ld: %ld\n", tv.tv_sec, tv.tv_usec);
diff --git a/tests/time/gmtime.c b/tests/time/gmtime.c
index 836822db350a171b0166f9f02663e41cf9001690..09bc97e5ef0383f54d8f24caa3d2e295ea8e58ce 100644
--- a/tests/time/gmtime.c
+++ b/tests/time/gmtime.c
@@ -3,7 +3,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     time_t a = 0;
     struct tm expected = { .tm_sec = 0, .tm_min = 0, .tm_hour = 0, .tm_mday = 1, .tm_year = 70,
                     .tm_wday = 4, .tm_yday = 0, .tm_isdst = 0, .tm_gmtoff = 0, .tm_zone = "UTC" };
@@ -14,7 +14,7 @@ int main(int argc, char** argv) {
         info->tm_year != expected.tm_year || info->tm_wday != expected.tm_wday ||
         info->tm_yday != expected.tm_yday || info->tm_isdst != expected.tm_isdst ||
         info->tm_gmtoff != expected.tm_gmtoff || strcmp(info->tm_zone, expected.tm_zone) != 0) {
-            exit(1);
+            return EXIT_FAILURE;
     }
 
     if (info->tm_sec != expected.tm_sec || info->tm_min != expected.tm_min ||
@@ -22,7 +22,6 @@ int main(int argc, char** argv) {
         info->tm_year != expected.tm_year || info->tm_wday != expected.tm_wday ||
         info->tm_yday != expected.tm_yday || info->tm_isdst != expected.tm_isdst ||
         info->tm_gmtoff != expected.tm_gmtoff || strcmp(info->tm_zone, expected.tm_zone) != 0) {
-            exit(1);
+            return EXIT_FAILURE;
     }
-    return 0;
 }
diff --git a/tests/time/localtime.c b/tests/time/localtime.c
index 3792531b95e6f6b3c48388c393bafab18e95f82c..5f96b3ea2302720ef2c085b1295add987ad12341 100644
--- a/tests/time/localtime.c
+++ b/tests/time/localtime.c
@@ -1,7 +1,7 @@
 #include <stdio.h>
 #include <time.h>
 
-int main() {
+int main(void) {
     int day = 60 * 60 * 24;
     time_t inputs[] = { -(day * 33), -day, -1, -500, 0, 1, 1531454950 };
     for (int i = 0; i < (sizeof(inputs) / sizeof(time_t)); i += 1) {
diff --git a/tests/time/macros.c b/tests/time/macros.c
index b33f78b7505238e58f1a067ae64a2b54fb0affbd..737dab831f0b39dd2e7ccfb76da4a2d6e36ad7d0 100644
--- a/tests/time/macros.c
+++ b/tests/time/macros.c
@@ -1,7 +1,7 @@
 #include <assert.h>
 #include <sys/time.h>
 
-int main() {
+int main(void) {
     struct timeval x = { .tv_usec = 15 };
     struct timeval y = { 0 };
     struct timeval z = { 0 };
diff --git a/tests/time/mktime.c b/tests/time/mktime.c
index 9b9d94069378aa4db623451b160b4cb60ee15f2c..eba83363c0c90cf9780e08b06ba70d865697c3b7 100644
--- a/tests/time/mktime.c
+++ b/tests/time/mktime.c
@@ -14,12 +14,13 @@ int check(time_t input) {
             t->tm_year, t->tm_yday, t->tm_mon, t->tm_mday, t->tm_wday, t->tm_hour, t->tm_min, t->tm_sec
         );
         puts("Failed!");
-        return -1;
+        return EXIT_FAILURE;
     }
-    return 0;
+    return EXIT_SUCCESS;
 }
-int main() {
-    struct tm t = {};
+
+int main(void) {
+    struct tm t = { 0 };
 
     t.tm_year = 71;
     t.tm_mday = 1;
@@ -30,7 +31,7 @@ int main() {
     time_t inputs[] = { -(day * 33), -day, -500, 0, 1531454950 };
     for (int i = 0; i < 5; i += 1) {
         if (check(inputs[i])) {
-            return -1;
+            return EXIT_FAILURE;
         }
     }
 
diff --git a/tests/time/strftime.c b/tests/time/strftime.c
index 56ecc6f9e2c86d186aa2a711cff8f734c1c3745a..99da578bfd92f5643a001372734a73f7f2ee8db0 100644
--- a/tests/time/strftime.c
+++ b/tests/time/strftime.c
@@ -8,7 +8,8 @@ void print(time_t timestamp, char* fmt) {
     printf("%zu: %s\n", n, out);
     free(out);
 }
-int main() {
+
+int main(void) {
     print(1531808742, "%a %A %b %B");
     print(1531808742, "The %Cst century");
     print(1531808742, "%I:%M:%S %p");
diff --git a/tests/time/time.c b/tests/time/time.c
index bf827b1c00df4cf6f44a6924eed2de6a77007be5..24d7b28d34e594638ecf010dd097fd287bd31209 100644
--- a/tests/time/time.c
+++ b/tests/time/time.c
@@ -1,13 +1,25 @@
 #include <time.h>
 #include <stdio.h>
+#include <stdlib.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     struct timespec tm = {0, 0};
-    clock_gettime(CLOCK_REALTIME, &tm);
-    perror("clock_gettime");
-    time(NULL);
-    perror("time");
+
+    int cgt = clock_gettime(CLOCK_REALTIME, &tm);
+    if (cgt == -1) {
+        perror("clock_gettime");
+        return EXIT_FAILURE;
+    }
+
+    time_t t = time(NULL);
+    if (t == (time_t)-1) {
+        perror("time");
+        return EXIT_FAILURE;
+    }
+
     clock_t c = clock();
-    perror("clock");
-    return 0;
+    if (c == (clock_t)-1) {
+        perror("clock");
+        return EXIT_FAILURE;
+    }
 }
diff --git a/tests/time/times.c b/tests/time/times.c
index 975aae2dd042e55d722d36ce68d8105c46f1def4..91829b4cadb1f1c9612366b652b75dc85ad560b2 100644
--- a/tests/time/times.c
+++ b/tests/time/times.c
@@ -2,7 +2,7 @@
 #include <sys/times.h>
 #include <unistd.h>
 
-int main() {
+int main(void) {
     struct tms tms;
     printf("return: %ld\n", times(&tms));
 
diff --git a/tests/unistd/access.c b/tests/unistd/access.c
index 9491aa5f5de4648cdea9248af6ee04b34298b3f5..9de843b6d188d7f362d784c55b17e0b2005c00e0 100644
--- a/tests/unistd/access.c
+++ b/tests/unistd/access.c
@@ -1,14 +1,15 @@
 #include <stdio.h>
 #include <unistd.h>
+#include <stdlib.h>
 
-int main() {
+int main(void) {
     if (access("example_dir/1-never-gonna-give-you-up", R_OK | W_OK)) {
         perror("access");
-        return 1;
+        return EXIT_FAILURE;
     }
     if (!access("example_dir/1-never-gonna-give-you-up", X_OK)) {
         puts("Accessing a file with X_OK worked even though it... probably... shouldn't?");
         puts("Please run `chmod 644 example_dir/*` and try again.");
-        return 1;
+        return EXIT_FAILURE;
     }
 }
diff --git a/tests/unistd/brk.c b/tests/unistd/brk.c
index 138b0080f3af8ad22df5a5f9c89223483f96c76e..811644e28d18e6ef491b1967025670058138ea11 100644
--- a/tests/unistd/brk.c
+++ b/tests/unistd/brk.c
@@ -1,8 +1,7 @@
 #include <unistd.h>
 #include <stdio.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     int status = brk((void*)100);
     printf("brk exited with status code %d\n", status);
-    return 0;
 }
diff --git a/tests/unistd/chdir.c b/tests/unistd/chdir.c
index be0e29018f734f843dc30aa9c1c119c1f7eae3cb..28178922e8005833ccd8550566abcfb351c72613 100644
--- a/tests/unistd/chdir.c
+++ b/tests/unistd/chdir.c
@@ -2,7 +2,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     char* cwd1 = malloc(4096*sizeof(char));//(char*) calloc(4096 + 1, sizeof(char));
     getcwd(cwd1, 4096);
     printf("initial cwd: %s\n", cwd1);
@@ -12,5 +12,4 @@ int main(int argc, char** argv) {
     getcwd(cwd2, 4096);
     printf("final cwd: %s\n", cwd2);
     free(cwd2);
-    return 0;
 }
diff --git a/tests/unistd/dup.c b/tests/unistd/dup.c
index 54bbb159b061ea89994f1301c50f8b47bed5ccad..0c7ff8ecb9061a8d17cd29aecb241dc0e5b0fbaa 100644
--- a/tests/unistd/dup.c
+++ b/tests/unistd/dup.c
@@ -2,7 +2,7 @@
 #include <fcntl.h>
 #include <stdio.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     creat("dup.out", 0777);
     int fd1 = open("dup.out", 0);
     int fd2 = dup(fd1);
@@ -13,5 +13,4 @@ int main(int argc, char** argv) {
     dup2(fd3, 1);
     printf("hello fd %d", fd3);
     close(fd3);
-    return 0;
 }
diff --git a/tests/unistd/exec.c b/tests/unistd/exec.c
index 732ed00aec4047ac3ec2b5712e39ef0da5983bee..43b10ddccb31bc82ed5f3271b844c1f94c265346 100644
--- a/tests/unistd/exec.c
+++ b/tests/unistd/exec.c
@@ -1,9 +1,8 @@
 #include <unistd.h>
 #include <stdio.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     char* args[] = {"sh", "-c", "echo 'exec works :D'", NULL};
     execv("/bin/sh", args);
     perror("execv");
-    return 0;
 }
diff --git a/tests/unistd/fchdir.c b/tests/unistd/fchdir.c
index e89c5ef5937794acd437a56e969eeec3cd4abbef..9e3ab29b7e6f4ffb5feeb7cd6c697e3087d67c68 100644
--- a/tests/unistd/fchdir.c
+++ b/tests/unistd/fchdir.c
@@ -2,11 +2,10 @@
 #include <fcntl.h>
 #include <stdio.h>
 
-int main (int argc, char** argv) {
+int main(void) {
     int fd = open("..", 0, 0);
     int status;
     status = fchdir(fd);
     printf("fchdir exited with status code %d\n", status);
     close(fd);
-    return 0;
 }
diff --git a/tests/unistd/fsync.c b/tests/unistd/fsync.c
index d9f42bd239aabd99308f815d403eceb5f38bb38a..7f337f1caa0e4c2826df091b8c81e574921b8c21 100644
--- a/tests/unistd/fsync.c
+++ b/tests/unistd/fsync.c
@@ -2,11 +2,10 @@
 #include <fcntl.h>
 #include <stdio.h>
 
-int main (int argc, char** argv) {
+int main(void) {
     int fd = open(".", 0, 0);
     int status;
     status = fsync(fd);
     printf("fsync exited with status code %d\n", status);
     close(fd);
-    return 0;
 }
diff --git a/tests/unistd/ftruncate.c b/tests/unistd/ftruncate.c
index 67f39f4c45dff22799ccfc94fc15b7612878f0ca..7eb4f9822d02fe7f2c414b1863bf2cc3761c5f3a 100644
--- a/tests/unistd/ftruncate.c
+++ b/tests/unistd/ftruncate.c
@@ -2,11 +2,10 @@
 #include <fcntl.h>
 #include <stdio.h>
 
-int main (int argc, char** argv) {
+int main(void) {
     int fd = creat("ftruncate.out", 0777);
     int status;
     status = ftruncate(fd, 100);
     printf("ftruncate exited with status code %d\n", status);
     close(fd);
-    return 0;
 }
diff --git a/tests/unistd/getcwd.c b/tests/unistd/getcwd.c
index 0d8e5f108dc608e307a79294c848bb03b8392942..f1e088f8ca762b4bb1f2cea9c070abc29c50a490 100644
--- a/tests/unistd/getcwd.c
+++ b/tests/unistd/getcwd.c
@@ -4,7 +4,7 @@
 #include <string.h>
 #include <unistd.h>
 
-int main() {
+int main(void) {
     char first[PATH_MAX];
     getcwd(first, PATH_MAX);
     puts(first);
@@ -15,7 +15,7 @@ int main() {
     if (strcmp(first, second)) {
         puts("Not matching");
         free(second);
-        return 1;
+        return EXIT_FAILURE;
     }
 
     free(second);
diff --git a/tests/unistd/gethostname.c b/tests/unistd/gethostname.c
index 02a0b7a7d439db02697b9567583967c864290fef..85119c32f53572f5af1a11c98a7abb2b1283f40a 100644
--- a/tests/unistd/gethostname.c
+++ b/tests/unistd/gethostname.c
@@ -2,7 +2,7 @@
 #include <stdio.h>
 #include <unistd.h>
 
-int main() {
+int main(void) {
     char* hostname = malloc(256);
     if (gethostname(hostname, 256) == 0) {
         printf("Hostname: %s\n", hostname);
diff --git a/tests/unistd/getid.c b/tests/unistd/getid.c
index 774ffea26093b7eba481193bb8f23d91740981c1..d2a2bf579c96111c4b0b79d46c08d33997fe69c7 100644
--- a/tests/unistd/getid.c
+++ b/tests/unistd/getid.c
@@ -1,7 +1,7 @@
 #include <unistd.h>
 #include <stdio.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     gid_t egid = getegid();
     uid_t euid = geteuid();
     gid_t gid = getgid();
@@ -11,5 +11,4 @@ int main(int argc, char** argv) {
     uid_t uid = getuid();
     printf("egid: %d, euid: %d, gid: %d, pgid: %d, pid: %d, ppid %d, uid %d\n",
             egid, euid, gid, pgid, pid, ppid, uid);
-    return 0;
 }
diff --git a/tests/unistd/isatty.c b/tests/unistd/isatty.c
index 9647282aa6a1fff298ea0273bf4d0c1396ec6fcf..33855fbaf9bf7ca99723884cd4a471b4d57f6ddd 100644
--- a/tests/unistd/isatty.c
+++ b/tests/unistd/isatty.c
@@ -1,7 +1,7 @@
 #include <stdio.h>
 #include <unistd.h>
 
-int main() {
+int main(void) {
     // 1 is stdout
     if (isatty(1)) {
         puts("'Tis a tty :D");
diff --git a/tests/unistd/link.c b/tests/unistd/link.c
index a39286106f286079ad03fba42ea720f41f493d83..7c2af4565e43c68fc3c5f06ef2294bc9cfee257c 100644
--- a/tests/unistd/link.c
+++ b/tests/unistd/link.c
@@ -1,9 +1,10 @@
 #include <errno.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <sys/stat.h>
 #include <unistd.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     printf("%ld\n", sizeof(struct stat));
 
     struct stat buf;
@@ -11,7 +12,7 @@ int main(int argc, char** argv) {
     // Stat for the inode
     if (stat("unistd/link.c", &buf)) {
         perror("stat");
-        return 1;
+        return EXIT_FAILURE;
     }
     unsigned long inode = buf.st_ino;
     printf("%ld\n", inode);
@@ -19,7 +20,7 @@ int main(int argc, char** argv) {
     // Create the link
     if (link("unistd/link.c", "link.out")) {
         perror("link");
-        return 1;
+        return EXIT_FAILURE;
     }
 
     // Make sure inodes match
@@ -37,10 +38,10 @@ int main(int argc, char** argv) {
     // Remove link
     if (unlink("link.out")) {
         perror("unlink");
-        return 1;
+        return EXIT_FAILURE;
     }
     if (!stat("link.out", &buf) || errno != ENOENT) {
         perror("stat");
-        return 1;
+        return EXIT_FAILURE;
     }
 }
diff --git a/tests/unistd/pathconf.c b/tests/unistd/pathconf.c
index f943ec56ef90524f593a74d16c9efac9c05bd992..5aeaee8b6739561c40ee03a35e2ffdbb07ad1012 100644
--- a/tests/unistd/pathconf.c
+++ b/tests/unistd/pathconf.c
@@ -7,7 +7,7 @@
 	printf("%s (%d): %ld (%d)\n", #N, _PC_ ## N, fpathconf(0, _PC_ ## N), errno); \
 }
 
-int main(){
+int main(void) {
 	PC(LINK_MAX);
 	PC(MAX_CANON);
 	PC(MAX_INPUT);
@@ -29,5 +29,4 @@ int main(){
 	PC(ALLOC_SIZE_MIN);
 	PC(SYMLINK_MAX);
 	PC(2_SYMLINKS);
-	return 0;
 }
diff --git a/tests/unistd/pipe.c b/tests/unistd/pipe.c
index af5b2d89ae13156a7cae3e775d9d3176342a768e..90dfa6464148b8dd544f9091f69a485005b7ff9f 100644
--- a/tests/unistd/pipe.c
+++ b/tests/unistd/pipe.c
@@ -1,18 +1,17 @@
 //http://www2.cs.uregina.ca/~hamilton/courses/330/notes/unix/pipes/pipes.html
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
-int main()
-{
-
+int main(void) {
     int pid, pip[2];
     char instring[20];
     char * outstring = "Hello World!";
 
     if (pipe(pip) < 0) {
         perror("pipe");
-        return 1;
+        return EXIT_FAILURE;
     }
 
     pid = fork();
@@ -30,13 +29,13 @@ int main()
         /* check result */
         if (bytes < 0) {
             perror("pipe write");
-            return 1;
+            return EXIT_FAILURE;
         } else if (bytes != strlen(outstring)) {
             fprintf(stderr, "pipe write: %d != %ld\n", bytes, strlen(outstring));
-            return 1;
+            return EXIT_FAILURE;
         }
 
-        return 0;
+        return EXIT_SUCCESS;
     }
     else			/* parent : receives message from child */
     {
@@ -55,18 +54,17 @@ int main()
         /* check result */
         if (bytes < 0) {
             perror("pipe read");
-            return 1;
+            return EXIT_FAILURE;
         } else if (bytes != strlen(outstring)) {
             fprintf(stderr, "pipe read: %d != %ld\n", bytes, strlen(outstring));
-            return 1;
-        } else if (memcmp(instring, outstring, sizeof(outstring)) != 0) {
+            return EXIT_FAILURE;
+        } else if (memcmp(instring, outstring, strlen(outstring)) != 0) {
             fprintf(stderr, "pipe read does not match pipe write\n");
-            return 1;
+            return EXIT_FAILURE;
         } else {
             printf("%s\n", instring);
         }
 
-        return 0;
+        return EXIT_SUCCESS;
     }
-    return 0;
 }
diff --git a/tests/unistd/rmdir.c b/tests/unistd/rmdir.c
index 97aa50fe1794616f5199a71c330950bb71af7d9b..212ad48dab8a7894ace0a398eed9cf94ea611632 100644
--- a/tests/unistd/rmdir.c
+++ b/tests/unistd/rmdir.c
@@ -2,9 +2,8 @@
 #include <sys/stat.h>
 #include <stdio.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     mkdir("foo", 0);
     int status = rmdir("foo");
     printf("rmdir exited with status code %d\n", status);
-    return 0;
 }
diff --git a/tests/unistd/setid.c b/tests/unistd/setid.c
index cf6abc6c6726b5151b06cf6963343184b8856a02..5a35bbb54f10bf0fbf571d76727285d27f3c0eb3 100644
--- a/tests/unistd/setid.c
+++ b/tests/unistd/setid.c
@@ -4,10 +4,8 @@
 #include <stdio.h>
 #include <sys/types.h>
 #include <unistd.h>
-#include <stdlib.h>
 
-int main( void )
-  {
+int main(void) {
     if( setpgid( getpid(), 0 ) == -1 ) {
         perror( "setpgid" );
     }
@@ -23,5 +21,4 @@ int main( void )
         perror( "setreuid" );
     }
     printf("%d has euid %d and uid %d\n", getpid(), geteuid(), getuid());
-    return 0;
-  }
+}
diff --git a/tests/unistd/sleep.c b/tests/unistd/sleep.c
index cf395a783971d7c3be5bfaa9f54b0141d7f5f8ed..7aa46108c96f42ceae0799b104232ebe7f99b608 100644
--- a/tests/unistd/sleep.c
+++ b/tests/unistd/sleep.c
@@ -2,7 +2,7 @@
 #include <unistd.h>
 #include <stdio.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     sleep(2);
     perror("sleep");
     usleep(1000);
@@ -10,5 +10,4 @@ int main(int argc, char** argv) {
     struct timespec tm = {0, 10000};
     nanosleep(&tm, NULL);
     perror("nanosleep");
-    return 0;
 }
diff --git a/tests/unistd/stat.c b/tests/unistd/stat.c
index 5fd178530d64198af8893015f632b74ac4406321..7287c0018ec37f5499abbe9f2612ca6880720d74 100644
--- a/tests/unistd/stat.c
+++ b/tests/unistd/stat.c
@@ -1,16 +1,17 @@
 #include <errno.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <sys/stat.h>
 #include <unistd.h>
 
-int main() {
+int main(void) {
     printf("%ld\n", sizeof(struct stat));
 
     struct stat buf;
 
     if (stat("unistd/stat.c", &buf)) {
         perror("stat");
-        return 1;
+        return EXIT_FAILURE;
     }
 
     printf("st_size: %lu\n", buf.st_size);
diff --git a/tests/unistd/sysconf.c b/tests/unistd/sysconf.c
index aa4bf4882f86304dba26f06d086771f88ffd4173..be64b647c6cfefce5d6ce1b4993cb6f2ee8f1180 100644
--- a/tests/unistd/sysconf.c
+++ b/tests/unistd/sysconf.c
@@ -7,7 +7,7 @@
 	printf("%s (%d): %ld (%d)\n", #N, _SC_ ## N, sysconf(_SC_ ## N), errno); \
 }
 
-int main(){
+int main(void) {
 	SC(ARG_MAX);
 	SC(CHILD_MAX);
 	SC(CLK_TCK);
@@ -22,5 +22,4 @@ int main(){
 	SC(TTY_NAME_MAX);
 	SC(SYMLOOP_MAX);
 	SC(HOST_NAME_MAX);
-	return 0;
 }
diff --git a/tests/unistd/write.c b/tests/unistd/write.c
index 5102aca427ed0646c85cdfaa71b4ffdcd9c69c0d..47cc4e0213834108763f653d2d744ae8dab7ca2b 100644
--- a/tests/unistd/write.c
+++ b/tests/unistd/write.c
@@ -1,6 +1,5 @@
 #include <unistd.h>
 
-int main(int argc, char ** argv) {
+int main(void) {
     write(STDOUT_FILENO, "Hello World!\n", 13);
-    return 0;
 }
diff --git a/tests/waitpid.c b/tests/waitpid.c
index c350e33c6f9a65a834445c1107aa7befa69398a0..e25011d89a0506a0d24514d28de52601df493775 100644
--- a/tests/waitpid.c
+++ b/tests/waitpid.c
@@ -2,16 +2,15 @@
 #include <unistd.h>
 #include <stdlib.h>
 
-int main(int argc, char** argv) {
+int main(void) {
     pid_t pid = fork();
     if (pid == 0) {
         // child
         sleep(1);
-        exit(0);
+        return EXIT_SUCCESS;
     } else {
         // parent
         int stat_loc;
         waitpid(pid, &stat_loc, 0);
     }
-    return 0;
 }
diff --git a/tests/wchar/mbrtowc.c b/tests/wchar/mbrtowc.c
index 4487d2273192ce2b38c98e2eac6ef054b34d1c82..f05f70313a36575c3755a2161fea7c2b6170b881 100644
--- a/tests/wchar/mbrtowc.c
+++ b/tests/wchar/mbrtowc.c
@@ -2,8 +2,7 @@
 #include <string.h>
 #include <wchar.h>
  
-int main(void)
-{
+int main(void) {
     mbstate_t state;
     memset(&state, 0, sizeof state);
     char in[] = u8"z\u00df\u6c34\U0001F34C"; // or u8"zß水🍌"
@@ -27,4 +26,4 @@ int main(void)
     printf("into %zu wchar_t units: [ ", out_sz); //Should be 5 wchars
     for(size_t x = 0; x < out_sz; ++x) printf("%#x ", out[x]);
     puts("]");
-}
\ No newline at end of file
+}
diff --git a/tests/wchar/mbsrtowcs.c b/tests/wchar/mbsrtowcs.c
index 070cabc3cd748ff156d08765b60611c899dce2cd..15dff0b7e80297cb74a0cf868de4cbe284fa701c 100644
--- a/tests/wchar/mbsrtowcs.c
+++ b/tests/wchar/mbsrtowcs.c
@@ -17,8 +17,7 @@ void print_as_wide(const char* mbstr)
     //wprintf(L"The wide string: %ls \n", &wstr[0]);
 }
 
-int main()
-{
+int main(void) {
     const char* mbstr = u8"z\u00df\u6c34\U0001f34c"; // or u8"zß水🍌"
     print_as_wide(mbstr);
 }
diff --git a/tests/wchar/putwchar.c b/tests/wchar/putwchar.c
index f9f7ea41236ce5bbbf85d1cbd1ed318b67a0ea71..db5e276acc2a40e4990724e731ad525376de3429 100644
--- a/tests/wchar/putwchar.c
+++ b/tests/wchar/putwchar.c
@@ -3,8 +3,7 @@
 #include <wchar.h>
 #include <stdlib.h>
 
-int main(void)
-{
+int main(void) {
     wchar_t *wcs = L"zß水🍌";
 
     int i;
@@ -13,9 +12,7 @@ int main(void)
         if (0xFFFFFFFFu == putwchar(wcs[i]))
         {
             printf("Unable to putwchar() the wide character.\n");
-            exit(EXIT_FAILURE);
+            return EXIT_FAILURE;
         }
     }
-
-    return 0;
-}
\ No newline at end of file
+}
diff --git a/tests/wchar/wcrtomb.c b/tests/wchar/wcrtomb.c
index 27b05cef6b3bbfb9b383867c11ec5f185cc65f02..233496ed3771bc5f8be970c6cd3b012fb504e191 100644
--- a/tests/wchar/wcrtomb.c
+++ b/tests/wchar/wcrtomb.c
@@ -2,9 +2,8 @@
 #include <stdio.h>  
 #include <wchar.h> 
 #include <stdlib.h>
-  
-int main( void )  
-{  
+
+int main(void) {
     mbstate_t state;
     memset(&state, 0, sizeof state);
     wchar_t in[] = L"zß水🍌"; // or "z\u00df\u6c34\U0001F34C"
@@ -26,4 +25,4 @@ int main( void )
     printf("into %zu UTF-8 code units: [ ", out_sz);
     for(size_t x = 0; x < out_sz; ++x) printf("%#x ", +(unsigned char)out[x]);
     puts("]");
-} 
\ No newline at end of file
+}