github.com/apptainer/singularity@v3.1.1+incompatible/internal/pkg/util/signal/signal_test.go (about)

     1  // Copyright (c) 2018, Sylabs Inc. All rights reserved.
     2  // This software is licensed under a 3-clause BSD license. Please consult the
     3  // LICENSE.md file distributed with the sources of this project regarding your
     4  // rights to use or distribute this software.
     5  
     6  package signal
     7  
     8  import (
     9  	"syscall"
    10  	"testing"
    11  )
    12  
    13  var signalOK = []struct {
    14  	tests  []string
    15  	signal syscall.Signal
    16  }{
    17  	{[]string{"SIGHUP", "HUP", "1"}, syscall.SIGHUP},
    18  	{[]string{"SIGINT", "INT", "2"}, syscall.SIGINT},
    19  	{[]string{"SIGQUIT", "QUIT", "3"}, syscall.SIGQUIT},
    20  	{[]string{"SIGILL", "ILL", "4"}, syscall.SIGILL},
    21  	{[]string{"SIGTRAP", "TRAP", "5"}, syscall.SIGTRAP},
    22  	{[]string{"SIGABRT", "ABRT", "6"}, syscall.SIGABRT},
    23  	{[]string{"SIGBUS", "BUS", "7"}, syscall.SIGBUS},
    24  	{[]string{"SIGFPE", "FPE", "8"}, syscall.SIGFPE},
    25  	{[]string{"SIGKILL", "KILL", "9"}, syscall.SIGKILL},
    26  	{[]string{"SIGUSR1", "USR1", "10"}, syscall.SIGUSR1},
    27  	{[]string{"SIGSEGV", "SEGV", "11"}, syscall.SIGSEGV},
    28  	{[]string{"SIGUSR2", "USR2", "12"}, syscall.SIGUSR2},
    29  	{[]string{"SIGPIPE", "PIPE", "13"}, syscall.SIGPIPE},
    30  	{[]string{"SIGALRM", "ALRM", "14"}, syscall.SIGALRM},
    31  	{[]string{"SIGTERM", "TERM", "15"}, syscall.SIGTERM},
    32  	{[]string{"SIGSTKFLT", "STKFLT", "16"}, syscall.SIGSTKFLT},
    33  	{[]string{"SIGCHLD", "CHLD", "17"}, syscall.SIGCHLD},
    34  	{[]string{"SIGCONT", "CONT", "18"}, syscall.SIGCONT},
    35  	{[]string{"SIGSTOP", "STOP", "19"}, syscall.SIGSTOP},
    36  	{[]string{"SIGTSTP", "TSTP", "20"}, syscall.SIGTSTP},
    37  	{[]string{"SIGTTIN", "TTIN", "21"}, syscall.SIGTTIN},
    38  	{[]string{"SIGTTOU", "TTOU", "22"}, syscall.SIGTTOU},
    39  	{[]string{"SIGURG", "URG", "23"}, syscall.SIGURG},
    40  	{[]string{"SIGXCPU", "XCPU", "24"}, syscall.SIGXCPU},
    41  	{[]string{"SIGXFSZ", "XFSZ", "25"}, syscall.SIGXFSZ},
    42  	{[]string{"SIGVTALRM", "VTALRM", "26"}, syscall.SIGVTALRM},
    43  	{[]string{"SIGPROF", "PROF", "27"}, syscall.SIGPROF},
    44  	{[]string{"SIGWINCH", "WINCH", "28"}, syscall.SIGWINCH},
    45  	{[]string{"SIGIO", "IO", "29"}, syscall.SIGIO},
    46  	{[]string{"SIGPWR", "PWR", "30"}, syscall.SIGPWR},
    47  	{[]string{"SIGSYS", "SYS", "31"}, syscall.SIGSYS},
    48  }
    49  
    50  var signalKO = []struct {
    51  	tests  []string
    52  	signal syscall.Signal
    53  }{
    54  	{[]string{"SIGNULL", "NULL", "0"}, 0},
    55  }
    56  
    57  func TestConvert(t *testing.T) {
    58  	for _, test := range signalOK {
    59  		for _, sig := range test.tests {
    60  			if s, err := Convert(sig); s != test.signal && err != nil {
    61  				t.Error(err)
    62  			}
    63  		}
    64  	}
    65  	for _, test := range signalKO {
    66  		for _, sig := range test.tests {
    67  			if s, err := Convert(sig); s != test.signal && err == nil {
    68  				t.Error(err)
    69  			}
    70  		}
    71  	}
    72  }