github.com/amarpal/go-tools@v0.0.0-20240422043104-40142f59f616/staticcheck/sa1016/testdata/src/example.com/CheckUntrappableSignal/CheckUntrappableSignal.go.golden (about)

     1  -- remove syscall.SIGKILL from list of arguments --
     2  package main
     3  
     4  import (
     5  	"os"
     6  	"os/signal"
     7  	"syscall"
     8  )
     9  
    10  func fn() {
    11  	c := make(chan os.Signal, 1)
    12  	signal.Notify(c, os.Interrupt)
    13  	signal.Ignore()           //@ diag(`cannot be trapped`)
    14  	signal.Ignore(os.Kill)    //@ diag(`cannot be trapped`)
    15  	signal.Notify(c, os.Kill) //@ diag(`cannot be trapped`)
    16  	signal.Reset(os.Kill)     //@ diag(`cannot be trapped`)
    17  	signal.Ignore()           //@ diag(`cannot be trapped`)
    18  	signal.Notify(c)          //@ diag(`cannot be trapped`)
    19  	signal.Reset()            //@ diag(`cannot be trapped`)
    20  }
    21  
    22  -- remove os.Kill from list of arguments --
    23  package main
    24  
    25  import (
    26  	"os"
    27  	"os/signal"
    28  	"syscall"
    29  )
    30  
    31  func fn() {
    32  	c := make(chan os.Signal, 1)
    33  	signal.Notify(c, os.Interrupt)
    34  	signal.Ignore(os.Signal(syscall.SIGKILL)) //@ diag(`cannot be trapped`)
    35  	signal.Ignore()                           //@ diag(`cannot be trapped`)
    36  	signal.Notify(c)                          //@ diag(`cannot be trapped`)
    37  	signal.Reset()                            //@ diag(`cannot be trapped`)
    38  	signal.Ignore(syscall.SIGKILL)            //@ diag(`cannot be trapped`)
    39  	signal.Notify(c, syscall.SIGKILL)         //@ diag(`cannot be trapped`)
    40  	signal.Reset(syscall.SIGKILL)             //@ diag(`cannot be trapped`)
    41  }
    42  
    43  -- use syscall.SIGTERM instead of syscall.SIGKILL --
    44  package main
    45  
    46  import (
    47  	"os"
    48  	"os/signal"
    49  	"syscall"
    50  )
    51  
    52  func fn() {
    53  	c := make(chan os.Signal, 1)
    54  	signal.Notify(c, os.Interrupt)
    55  	signal.Ignore(syscall.SIGTERM)    //@ diag(`cannot be trapped`)
    56  	signal.Ignore(os.Kill)            //@ diag(`cannot be trapped`)
    57  	signal.Notify(c, os.Kill)         //@ diag(`cannot be trapped`)
    58  	signal.Reset(os.Kill)             //@ diag(`cannot be trapped`)
    59  	signal.Ignore(syscall.SIGTERM)    //@ diag(`cannot be trapped`)
    60  	signal.Notify(c, syscall.SIGTERM) //@ diag(`cannot be trapped`)
    61  	signal.Reset(syscall.SIGTERM)     //@ diag(`cannot be trapped`)
    62  }
    63  
    64  -- use syscall.SIGTERM instead of os.Kill --
    65  package main
    66  
    67  import (
    68  	"os"
    69  	"os/signal"
    70  	"syscall"
    71  )
    72  
    73  func fn() {
    74  	c := make(chan os.Signal, 1)
    75  	signal.Notify(c, os.Interrupt)
    76  	signal.Ignore(os.Signal(syscall.SIGKILL)) //@ diag(`cannot be trapped`)
    77  	signal.Ignore(syscall.SIGTERM)            //@ diag(`cannot be trapped`)
    78  	signal.Notify(c, syscall.SIGTERM)         //@ diag(`cannot be trapped`)
    79  	signal.Reset(syscall.SIGTERM)             //@ diag(`cannot be trapped`)
    80  	signal.Ignore(syscall.SIGKILL)            //@ diag(`cannot be trapped`)
    81  	signal.Notify(c, syscall.SIGKILL)         //@ diag(`cannot be trapped`)
    82  	signal.Reset(syscall.SIGKILL)             //@ diag(`cannot be trapped`)
    83  }