aboutsummaryrefslogblamecommitdiffstats
path: root/util/interrupt/cleaner_test.go
blob: ebe012bed6db48ce09fbe2f5f5b7314f7b2cd9a4 (plain) (tree)
1
2
3
4
5
6
7
8
9


                 
                


                 

                                                                                                        


                                                                                    
                                      

                            
                                      





                               

                     
                       

                                                  
         


                                                             
         



                                                                                    
 







                              
                       


                                                  
 
package interrupt

import (
	"errors"
	"testing"
)

// TestRegisterAndErrorAtCleaning tests if the registered order was kept by checking the returned errors
func TestRegisterAndErrorAtCleaning(t *testing.T) {
	active = true // this prevents goroutine from being started during the tests

	f := func() error {
		return errors.New("X")
	}
	f2 := func() error {
		return errors.New("Y")
	}
	f3 := func() error {
		return nil
	}
	RegisterCleaner(f)
	RegisterCleaner(f2, f3)
	// count := 0

	errl := clean()
	if len(errl) != 2 {
		t.Fatalf("unexpected error count")
	}
	if errl[0].Error() != "Y" && errl[1].Error() != "X" {
		t.Fatalf("unexpected error order")

	}
}

func TestRegisterAndClean(t *testing.T) {
	active = true // this prevents goroutine from being started during the tests

	f := func() error {
		return nil
	}
	f2 := func() error {
		return nil
	}
	RegisterCleaner(f, f2)

	errl := clean()
	if len(errl) != 0 {
		t.Fatalf("unexpected error count")
	}
}