|
| 1 | +/*-*- mode:c;indent-tabs-mode:nil;c-basic-offset:2;tab-width:8;coding:utf-8 -*-│ |
| 2 | +│ vi: set et ft=c ts=2 sts=2 sw=2 fenc=utf-8 :vi │ |
| 3 | +╞══════════════════════════════════════════════════════════════════════════════╡ |
| 4 | +│ Copyright 2024 Justine Alexandra Roberts Tunney │ |
| 5 | +│ │ |
| 6 | +│ Permission to use, copy, modify, and/or distribute this software for │ |
| 7 | +│ any purpose with or without fee is hereby granted, provided that the │ |
| 8 | +│ above copyright notice and this permission notice appear in all copies. │ |
| 9 | +│ │ |
| 10 | +│ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL │ |
| 11 | +│ WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED │ |
| 12 | +│ WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE │ |
| 13 | +│ AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL │ |
| 14 | +│ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR │ |
| 15 | +│ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER │ |
| 16 | +│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │ |
| 17 | +│ PERFORMANCE OF THIS SOFTWARE. │ |
| 18 | +╚─────────────────────────────────────────────────────────────────────────────*/ |
| 19 | +#include "libc/calls/struct/sigaltstack.h" |
| 20 | +#include "libc/calls/calls.h" |
| 21 | +#include "libc/errno.h" |
| 22 | +#include "libc/sysv/consts/ss.h" |
| 23 | +#include "libc/testlib/testlib.h" |
| 24 | + |
| 25 | +TEST(sigaltstack, badFlag) { |
| 26 | + struct sigaltstack ss; |
| 27 | + ss.ss_flags = -1; |
| 28 | + ss.ss_size = 0; |
| 29 | + ss.ss_sp = 0; |
| 30 | + EXPECT_SYS(EINVAL, -1, sigaltstack(&ss, 0)); |
| 31 | +} |
| 32 | + |
| 33 | +TEST(sigaltstack, disable) { |
| 34 | + struct sigaltstack ss; |
| 35 | + ss.ss_flags = SS_DISABLE; |
| 36 | + ss.ss_size = 0; |
| 37 | + ss.ss_sp = 0; |
| 38 | + EXPECT_SYS(0, 0, sigaltstack(&ss, 0)); |
| 39 | + EXPECT_SYS(0, 0, sigaltstack(0, &ss)); |
| 40 | + EXPECT_EQ(SS_DISABLE, ss.ss_flags); |
| 41 | +} |
0 commit comments