| // These initial tests are for bootstrapping. They verify that we can | |
| // basically use the testing infrastructure itself to check if the test | |
| // system is working. | |
| // | |
| // These tests use will break down the test runner badly in case of | |
| // errors because if they simply fail, we can't be sure the developer | |
| // will ever see anything (because failing means the failing system | |
| // somehow isn't working! :-) | |
| // | |
| // Do not assume *any* internal functionality works as expected besides | |
| // what's actually tested here. | |
| package check_test | |
| import ( | |
| "fmt" | |
| "gopkg.in/check.v1" | |
| "strings" | |
| ) | |
| type BootstrapS struct{} | |
| var boostrapS = check.Suite(&BootstrapS{}) | |
| func (s *BootstrapS) TestCountSuite(c *check.C) { | |
| suitesRun += 1 | |
| } | |
| func (s *BootstrapS) TestFailedAndFail(c *check.C) { | |
| if c.Failed() { | |
| critical("c.Failed() must be false first!") | |
| } | |
| c.Fail() | |
| if !c.Failed() { | |
| critical("c.Fail() didn't put the test in a failed state!") | |
| } | |
| c.Succeed() | |
| } | |
| func (s *BootstrapS) TestFailedAndSucceed(c *check.C) { | |
| c.Fail() | |
| c.Succeed() | |
| if c.Failed() { | |
| critical("c.Succeed() didn't put the test back in a non-failed state") | |
| } | |
| } | |
| func (s *BootstrapS) TestLogAndGetTestLog(c *check.C) { | |
| c.Log("Hello there!") | |
| log := c.GetTestLog() | |
| if log != "Hello there!\n" { | |
| critical(fmt.Sprintf("Log() or GetTestLog() is not working! Got: %#v", log)) | |
| } | |
| } | |
| func (s *BootstrapS) TestLogfAndGetTestLog(c *check.C) { | |
| c.Logf("Hello %v", "there!") | |
| log := c.GetTestLog() | |
| if log != "Hello there!\n" { | |
| critical(fmt.Sprintf("Logf() or GetTestLog() is not working! Got: %#v", log)) | |
| } | |
| } | |
| func (s *BootstrapS) TestRunShowsErrors(c *check.C) { | |
| output := String{} | |
| check.Run(&FailHelper{}, &check.RunConf{Output: &output}) | |
| if strings.Index(output.value, "Expected failure!") == -1 { | |
| critical(fmt.Sprintf("RunWithWriter() output did not contain the "+ | |
| "expected failure! Got: %#v", | |
| output.value)) | |
| } | |
| } | |
| func (s *BootstrapS) TestRunDoesntShowSuccesses(c *check.C) { | |
| output := String{} | |
| check.Run(&SuccessHelper{}, &check.RunConf{Output: &output}) | |
| if strings.Index(output.value, "Expected success!") != -1 { | |
| critical(fmt.Sprintf("RunWithWriter() output contained a successful "+ | |
| "test! Got: %#v", | |
| output.value)) | |
| } | |
| } |