Skip to content

Commit

Permalink
[Issue #98] Removed undefined behaviour from signal samples
Browse files Browse the repository at this point in the history
  • Loading branch information
Snaipe committed Jan 17, 2016
1 parent 0590c0e commit 813a526
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 22 deletions.
11 changes: 3 additions & 8 deletions samples/signal.c
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <criterion/criterion.h>

Test(simple, caught, .signal = SIGSEGV) {
int *i = NULL;
*i = 42;
raise(SIGSEGV);
}

Test(simple, wrong_signal, .signal = SIGINT) {
int *i = NULL;
*i = 42;
raise(SIGSEGV);
}

Test(simple, uncaught) {
int *i = NULL;
*i = 42;
raise(SIGSEGV);
}
13 changes: 4 additions & 9 deletions samples/signal.cc
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <csignal>
#include <criterion/criterion.h>

Test(simple, caught, .signal = SIGSEGV) {
int *i = NULL;
*i = 42;
std::raise(SIGSEGV);
}

Test(simple, wrong_signal, .signal = SIGINT) {
int *i = NULL;
*i = 42;
std::raise(SIGSEGV);
}

Test(simple, uncaught) {
int *i = NULL;
*i = 42;
std::raise(SIGSEGV);
}
8 changes: 4 additions & 4 deletions test/cram/crashes.t
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
Simple crashes & signal testing

$ signal.c.bin
[\x1b[0;34m----\x1b[0m] \x1b[0;1msignal.c\x1b[0m:\x1b[0;31m16\x1b[0m: Unexpected signal caught below this line! (esc)
[\x1b[0;34m----\x1b[0m] \x1b[0;1msignal.c\x1b[0m:\x1b[0;31m12\x1b[0m: Unexpected signal caught below this line! (esc)
[\x1b[0;31mFAIL\x1b[0m] simple::uncaught: CRASH! (esc)
[\x1b[0;31mFAIL\x1b[0m] simple::wrong_signal (esc)
[\x1b[0;34m====\x1b[0m] \x1b[0;1mSynthesis: Tested: \x1b[0;34m3\x1b[0;1m | Passing: \x1b[0;32m1\x1b[0;1m | Failing: \x1b[0;31m2\x1b[0;1m | Crashing: \x1b[0;31m1\x1b[0;1m \x1b[0m (esc)

$ signal.cc.bin
[\x1b[0;34m----\x1b[0m] \x1b[0;1msignal.cc\x1b[0m:\x1b[0;31m16\x1b[0m: Unexpected signal caught below this line! (esc)
[\x1b[0;34m----\x1b[0m] \x1b[0;1msignal.cc\x1b[0m:\x1b[0;31m12\x1b[0m: Unexpected signal caught below this line! (esc)
[\x1b[0;31mFAIL\x1b[0m] simple::uncaught: CRASH! (esc)
[\x1b[0;31mFAIL\x1b[0m] simple::wrong_signal (esc)
[\x1b[0;34m====\x1b[0m] \x1b[0;1mSynthesis: Tested: \x1b[0;34m3\x1b[0;1m | Passing: \x1b[0;32m1\x1b[0;1m | Failing: \x1b[0;31m2\x1b[0;1m | Crashing: \x1b[0;31m1\x1b[0;1m \x1b[0m (esc)
Expand All @@ -20,7 +20,7 @@ Simple crashes & signal testing (verbose)
[\x1b[0;34mRUN \x1b[0m] simple::caught (esc)
[\x1b[0;32mPASS\x1b[0m] simple::caught (esc)
[\x1b[0;34mRUN \x1b[0m] simple::uncaught (esc)
[\x1b[0;34m----\x1b[0m] \x1b[0;1msignal.c\x1b[0m:\x1b[0;31m16\x1b[0m: Unexpected signal caught below this line! (esc)
[\x1b[0;34m----\x1b[0m] \x1b[0;1msignal.c\x1b[0m:\x1b[0;31m12\x1b[0m: Unexpected signal caught below this line! (esc)
[\x1b[0;31mFAIL\x1b[0m] simple::uncaught: CRASH! (esc)
[\x1b[0;34mRUN \x1b[0m] simple::wrong_signal (esc)
[\x1b[0;31mFAIL\x1b[0m] simple::wrong_signal (esc)
Expand All @@ -32,7 +32,7 @@ Simple crashes & signal testing (verbose)
[\x1b[0;34mRUN \x1b[0m] simple::caught (esc)
[\x1b[0;32mPASS\x1b[0m] simple::caught (esc)
[\x1b[0;34mRUN \x1b[0m] simple::uncaught (esc)
[\x1b[0;34m----\x1b[0m] \x1b[0;1msignal.cc\x1b[0m:\x1b[0;31m16\x1b[0m: Unexpected signal caught below this line! (esc)
[\x1b[0;34m----\x1b[0m] \x1b[0;1msignal.cc\x1b[0m:\x1b[0;31m12\x1b[0m: Unexpected signal caught below this line! (esc)
[\x1b[0;31mFAIL\x1b[0m] simple::uncaught: CRASH! (esc)
[\x1b[0;34mRUN \x1b[0m] simple::wrong_signal (esc)
[\x1b[0;31mFAIL\x1b[0m] simple::wrong_signal (esc)
Expand Down
2 changes: 1 addition & 1 deletion test/cram/tap.t
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Testing multiple samples with --tap

# Running 3 tests from simple
not ok - simple::wrong_signal
not ok - simple::uncaught unexpected signal after signal.c:16
not ok - simple::uncaught unexpected signal after signal.c:12
ok - simple::caught

$ asserts.c.bin --tap
Expand Down

0 comments on commit 813a526

Please sign in to comment.