package seafile import ( "sync/atomic" "testing" "time" "github.com/stretchr/testify/assert" ) func TestShouldAllowShutdownTwice(t *testing.T) { renew := NewRenew(time.Hour, func() error { return nil }) renew.Shutdown() renew.Shutdown() } func TestRenewalInTimeLimit(t *testing.T) { var count atomic.Int64 renew := NewRenew(100*time.Millisecond, func() error { count.Add(1) return nil }) time.Sleep(time.Second) renew.Shutdown() // there's no guarantee the CI agent can handle a simple goroutine renewCount := count.Load() t.Logf("renew count = %d", renewCount) assert.Greater(t, renewCount, int64(0)) assert.Less(t, renewCount, int64(11)) }