func main() { flag.Parse() var scanConfig ScanTestConfigFile err := utils.ReadConfigFile(configFilePath, &scanConfig) config.ShelterConfig = scanConfig.Config if err == utils.ErrConfigFileUndefined { fmt.Println(err.Error()) fmt.Println("Usage:") flag.PrintDefaults() return } else if err != nil { utils.Fatalln("Error reading configuration file", err) } database, databaseSession, err := mongodb.Open( scanConfig.Database.URIs, scanConfig.Database.Name, scanConfig.Database.Auth.Enabled, scanConfig.Database.Auth.Username, scanConfig.Database.Auth.Password, ) if err != nil { utils.Fatalln("Error connecting the database", err) } defer databaseSession.Close() // Remove all data before starting the test. This is necessary because maybe in the last // test there was an error and the data wasn't removed from the database utils.ClearDatabase(database) server = utils.StartDNSServer(scanConfig.DNSServerPort, scanConfig.Scan.UDPMaxSize) domainDAO := dao.DomainDAO{ Database: database, } // Register a scan only to avoid warning messages in the integration test execution scheduler.Register(scheduler.Job{ Type: scheduler.JobTypeScan, NextExecution: time.Now().Add(10 * time.Minute), Task: func() {}, }) domainWithNoErrors(domainDAO) domainWithNoErrorsOnTheFly() domainQuery() domainQueryWithDNSSECErrors() // Scan performance report is optional and only generated when the report file // path parameter is given if report { if cpuProfile { f := utils.StartCPUProfile(scanConfig.Report.Profile.CPUFile) defer f() } if memoryProfile { f := utils.StartMemoryProfile(scanConfig.Report.Profile.MemoryFile) defer f() } if goProfile { f := utils.StartGoRoutinesProfile(scanConfig.Report.Profile.GoRoutinesFile) defer f() } scanDAO := dao.ScanDAO{ Database: database, } scanReport(domainDAO, scanDAO, scanConfig) } // This test is after all others because it will ask on real nameservers, so we need to // change to port 53 scan.DNSPort = 53 brDomainWithoutDNSSEC(domainDAO) utils.Println("SUCCESS!") }
func main() { flag.Parse() var restConfig RESTTestConfigFile err := utils.ReadConfigFile(configFilePath, &restConfig) config.ShelterConfig = restConfig.Config if err == utils.ErrConfigFileUndefined { fmt.Println(err.Error()) fmt.Println("Usage:") flag.PrintDefaults() return } else if err != nil { utils.Fatalln("Error reading configuration file", err) } database, databaseSession, err := mongodb.Open( config.ShelterConfig.Database.URIs, config.ShelterConfig.Database.Name, config.ShelterConfig.Database.Auth.Enabled, config.ShelterConfig.Database.Auth.Username, config.ShelterConfig.Database.Auth.Password, ) if err != nil { utils.Fatalln("Error connecting the database", err) } defer databaseSession.Close() // If there was some problem in the last test, there could be some data in the database, // so let's clear it to don't affect this test. We avoid checking the error, because if // the collection does not exist yet, it will be created in the first insert utils.ClearDatabase(database) finishRESTServer := utils.StartRESTServer() defer finishRESTServer() domainLifeCycle() // REST performance report is optional and only generated when the report file path parameter is // given if report { if cpuProfile { f := utils.StartCPUProfile(restConfig.Report.Profile.CPUFile) defer f() } if memoryProfile { f := utils.StartMemoryProfile(restConfig.Report.Profile.MemoryFile) defer f() } if goProfile { f := utils.StartGoRoutinesProfile(restConfig.Report.Profile.GoRoutinesFile) defer f() } restReport(restConfig) } utils.Println("SUCCESS!") }