102 lines
2.5 KiB
Plaintext
102 lines
2.5 KiB
Plaintext
@pragma entry main
|
|
@pragma implicit off
|
|
|
|
@include "tap.inc";
|
|
|
|
@global g_seen, g_count;
|
|
|
|
function on_sig (sig)
|
|
{
|
|
g_seen = sig;
|
|
g_count++;
|
|
}
|
|
|
|
function main ()
|
|
{
|
|
@local r, u;
|
|
@local badpid;
|
|
|
|
g_seen = 0;
|
|
g_count = 0;
|
|
|
|
r = sys::signal(sys::SIGINT, on_sig);
|
|
tap_ensure (r, 0, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
r = sys::raise(sys::SIGINT);
|
|
tap_ensure (r, 0, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (g_count, 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (g_seen, sys::SIGINT, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
r = sys::raise(sys::SIGINT);
|
|
tap_ensure (r, 0, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (g_count, 2, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
g_count = 0;
|
|
g_seen = 0;
|
|
r = sys::kill(sys::getpid(), sys::SIGINT);
|
|
if (r < 0)
|
|
{
|
|
tap_skip ("sys::kill not supported");
|
|
}
|
|
else
|
|
{
|
|
@local i;
|
|
i = 0;
|
|
while (g_count < 1 && i < 50)
|
|
{
|
|
sys::sleep(0.01);
|
|
i = i + 1;
|
|
}
|
|
tap_ensure (g_count, 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (g_seen, sys::SIGINT, @SCRIPTNAME, @SCRIPTLINE);
|
|
}
|
|
|
|
r = sys::signal(sys::SIGTERM, on_sig);
|
|
tap_ensure (r, 0, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
g_count = 0;
|
|
g_seen = 0;
|
|
r = sys::kill(sys::getpid(), sys::SIGTERM);
|
|
if (r < 0)
|
|
{
|
|
tap_skip ("sys::kill not supported");
|
|
}
|
|
else
|
|
{
|
|
@local j;
|
|
j = 0;
|
|
while (g_count < 1 && j < 50)
|
|
{
|
|
sys::sleep(0.01);
|
|
j = j + 1;
|
|
}
|
|
tap_ensure (g_count, 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (g_seen, sys::SIGTERM, @SCRIPTNAME, @SCRIPTLINE);
|
|
}
|
|
|
|
r = sys::signal(sys::SIGINT, @nil);
|
|
tap_ensure (r, 0, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
r = sys::raise(sys::SIGINT);
|
|
tap_ensure (r, sys::RC_EINVAL, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
badpid = sys::getpid() + 999990; ## hopefully, this doesn't exist during the test run
|
|
r = sys::kill(badpid, sys::SIGINT);
|
|
tap_ensure (r, sys::RC_ESYSERR, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
u = sys::uname();
|
|
tap_ensure (hawk::type(u), hawk::VAL_MAP, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (hawk::typename(u.sysname), "str", @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (hawk::typename(u.nodename), "str", @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (hawk::typename(u.release), "str", @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (hawk::typename(u.version), "str", @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (hawk::typename(u.machine), "str", @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (length(u.sysname) > 0, 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (length(u.nodename) > 0, 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (length(u.release) > 0, 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (length(u.version) > 0, 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
tap_ensure (length(u.machine) > 0, 1, @SCRIPTNAME, @SCRIPTLINE);
|
|
|
|
tap_end ();
|
|
}
|