本文整理汇总了Golang中github.com/rafaeljusto/shelter/testing/utils.Fatalln函数的典型用法代码示例。如果您正苦于以下问题:Golang Fatalln函数的具体用法?Golang Fatalln怎么用?Golang Fatalln使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Fatalln函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: domainCacheTest
func domainCacheTest(database *mgo.Database, r *http.Request,
requestContent, header string, domainCacheTestData []DomainCacheTestData) {
mux := handy.NewHandy()
h := new(handler.DomainHandler)
mux.Handle("/domain/{fqdn}", func() handy.Handler {
return h
})
for _, item := range domainCacheTestData {
r.Header.Set(header, item.HeaderValue)
if len(requestContent) > 0 {
utils.BuildHTTPHeader(r, []byte(requestContent))
} else {
utils.BuildHTTPHeader(r, nil)
}
w := httptest.NewRecorder()
mux.ServeHTTP(w, r)
responseContent, err := ioutil.ReadAll(w.Body)
if err != nil {
utils.Fatalln("Error reading response body", err)
}
if w.Code != item.ExpectedHTTPStatus {
utils.Fatalln(fmt.Sprintf("Error in %s test using %s [%s] "+
"HTTP header. Expected HTTP status code %d and got %d",
r.Method, header, item.HeaderValue, item.ExpectedHTTPStatus,
w.Code), errors.New(string(responseContent)))
}
}
}
示例2: retrieveUnknownScan
func retrieveUnknownScan(database *mgo.Database, startedAt time.Time) {
mux := handy.NewHandy()
h := new(handler.ScanHandler)
mux.Handle("/scan/{started-at}", func() handy.Handler {
return h
})
r, err := http.NewRequest("GET", fmt.Sprintf("/scan/%s", startedAt.Add(-1*time.Millisecond).Format(time.RFC3339Nano)), nil)
if err != nil {
utils.Fatalln("Error creating the HTTP request", err)
}
utils.BuildHTTPHeader(r, nil)
w := httptest.NewRecorder()
mux.ServeHTTP(w, r)
responseContent, err := ioutil.ReadAll(w.Body)
if err != nil {
utils.Fatalln("Error reading response body", err)
}
if w.Code != http.StatusNotFound {
utils.Fatalln("Error retrieving unknown scan", errors.New(string(responseContent)))
}
}
示例3: main
func main() {
flag.Parse()
var config ScanCollectorTestConfigFile
err := utils.ReadConfigFile(configFilePath, &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(
[]string{config.Database.URI},
config.Database.Name,
false, "", "",
)
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)
domainWithErrors(config, database)
domainWithNoErrors(config, database)
utils.Println("SUCCESS!")
}
示例4: deleteDomains
func deleteDomains(database *mgo.Database) {
mux := handy.NewHandy()
h := new(handler.DomainHandler)
mux.Handle("/domain/{fqdn}", func() handy.Handler {
return h
})
for i := 0; i < 100; i++ {
r, err := http.NewRequest("DELETE", fmt.Sprintf("/domain/example%d.com.br.", i), nil)
if err != nil {
utils.Fatalln("Error creating the HTTP request", err)
}
utils.BuildHTTPHeader(r, nil)
w := httptest.NewRecorder()
mux.ServeHTTP(w, r)
responseContent, err := ioutil.ReadAll(w.Body)
if err != nil {
utils.Fatalln("Error reading response body", err)
}
if w.Code != http.StatusNoContent {
utils.Fatalln("Error removing domain", errors.New(string(responseContent)))
}
}
}
示例5: retrieveUnknownDomain
func retrieveUnknownDomain(database *mgo.Database) {
mux := handy.NewHandy()
h := new(handler.DomainHandler)
mux.Handle("/domain/{fqdn}", func() handy.Handler {
return h
})
r, err := http.NewRequest("GET", "/domain/example.com.br.", nil)
if err != nil {
utils.Fatalln("Error creating the HTTP request", err)
}
utils.BuildHTTPHeader(r, nil)
w := httptest.NewRecorder()
mux.ServeHTTP(w, r)
responseContent, err := ioutil.ReadAll(w.Body)
if err != nil {
utils.Fatalln("Error reading response body", err)
}
if w.Code != http.StatusNotFound {
utils.Fatalln("Error retrieving unknown domain", errors.New(string(responseContent)))
}
}
示例6: createDomains
func createDomains() {
var client http.Client
url := ""
if len(config.ShelterConfig.WebClient.Listeners) > 0 {
url = fmt.Sprintf("http://%s:%d", config.ShelterConfig.WebClient.Listeners[0].IP,
config.ShelterConfig.WebClient.Listeners[0].Port)
}
if len(url) == 0 {
utils.Fatalln("There's no interface to connect to", nil)
}
var r *http.Request
var err error
for i := 0; i < 100; i++ {
uri := fmt.Sprintf("/domain/example%d.com.br.", i)
content := `{
"Nameservers": [
{ "host": "a.dns.br." },
{ "host": "b.dns.br." }
],
"Owners": [
{ "email": "[email protected]", "language": "pt-br" }
]
}`
r, err = http.NewRequest("PUT", fmt.Sprintf("%s%s", url, uri),
bytes.NewReader([]byte(content)))
if err != nil {
utils.Fatalln("Error creating the HTTP request", err)
}
utils.BuildHTTPHeader(r, []byte(content))
response, err := client.Do(r)
if err != nil {
utils.Fatalln("Error sending request", err)
}
if response.StatusCode != http.StatusCreated {
responseContent, err := ioutil.ReadAll(response.Body)
if err == nil {
utils.Fatalln(fmt.Sprintf("Expected HTTP status %d and got %d for method PUT and URI %s",
http.StatusCreated, response.StatusCode, uri),
errors.New(string(responseContent)),
)
} else {
utils.Fatalln(fmt.Sprintf("Expected HTTP status %d and got %d for method PUT and URI %s",
http.StatusCreated, response.StatusCode, uri), nil)
}
}
}
}
示例7: retrieveScan
func retrieveScan(database *mgo.Database, startedAt time.Time) {
mux := handy.NewHandy()
h := new(handler.ScanHandler)
mux.Handle("/scan/{started-at}", func() handy.Handler {
return h
})
r, err := http.NewRequest("GET", fmt.Sprintf("/scan/%s", startedAt.Format(time.RFC3339Nano)), nil)
if err != nil {
utils.Fatalln("Error creating the HTTP request", err)
}
utils.BuildHTTPHeader(r, nil)
w := httptest.NewRecorder()
mux.ServeHTTP(w, r)
responseContent, err := ioutil.ReadAll(w.Body)
if err != nil {
utils.Fatalln("Error reading response body", err)
}
if w.Code != http.StatusOK {
utils.Fatalln("Error retrieving scan", errors.New(string(responseContent)))
}
if w.Header().Get("ETag") != "1" {
utils.Fatalln("Not setting ETag in scan retrieve response", nil)
}
if len(w.Header().Get("Last-Modified")) == 0 {
utils.Fatalln("Not setting Last-Modified in scan retrieve response", nil)
}
if h.Response.Status != "EXECUTED" {
utils.Fatalln("Scan's status was not persisted correctly", nil)
}
if h.Response.DomainsScanned != 5000000 {
utils.Fatalln("Scan's domains scanned information is wrong", nil)
}
if h.Response.DomainsWithDNSSECScanned != 250000 {
utils.Fatalln("Scan's domains with DNSSEC scanned information is wrong", nil)
}
if h.Response.NameserverStatistics["OK"] != 4800000 ||
h.Response.NameserverStatistics["TIMEOUT"] != 200000 {
utils.Fatalln("Scan's nameserver statistics are wrong", nil)
}
if h.Response.DSStatistics["OK"] != 220000 ||
h.Response.DSStatistics["EXPSIG"] != 30000 {
utils.Fatalln("Scan's nameserver statistics are wrong", nil)
}
}
示例8: main
func main() {
flag.Parse()
err := utils.ReadConfigFile(configFilePath, &config.ShelterConfig)
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,
false, "", "",
)
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)
invalidFQDN(database)
createDomain(database)
updateDomain(database)
retrieveDomain(database)
retrieveDomainMetadata(database)
retrieveDomainIfModifiedSince(database)
retrieveDomainIfUnmodifiedSince(database)
retrieveDomainIfMatch(database)
retrieveDomainIfNoneMatch(database)
updateDomainIfModifiedSince(database)
updateDomainIfUnmodifiedSince(database)
updateDomainIfMatch(database)
updateDomainIfNoneMatch(database)
deleteDomainIfModifiedSince(database)
deleteDomainIfUnmodifiedSince(database)
deleteDomainIfMatch(database)
deleteDomainIfNoneMatch(database)
deleteDomain(database)
retrieveUnknownDomain(database)
utils.Println("SUCCESS!")
}
示例9: main
func main() {
flag.Parse()
var config DomainDAOTestConfigFile
err := utils.ReadConfigFile(configFilePath, &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(
[]string{config.Database.URI},
config.Database.Name,
false, "", "",
)
if err != nil {
utils.Fatalln("Error connecting the database", err)
}
defer databaseSession.Close()
domainDAO := dao.DomainDAO{
Database: database,
}
// 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
domainDAO.RemoveAll()
domainLifeCycle(domainDAO)
domainsLifeCycle(domainDAO)
domainUniqueFQDN(domainDAO)
domainConcurrency(domainDAO)
domainsPagination(domainDAO)
domainsNotification(domainDAO)
domainsExpand(domainDAO)
domainFilter(domainDAO)
// Domain DAO performance report is optional and only generated when the report file
// path parameter is given
if report {
domainDAOPerformanceReport(config.Report.ReportFile, domainDAO)
}
utils.Println("SUCCESS!")
}
示例10: main
func main() {
flag.Parse()
err := utils.ReadConfigFile(configFilePath, &config.ShelterConfig)
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)
messageChannel, errorChannel, err := utils.StartMailServer(config.ShelterConfig.Notification.SMTPServer.Port)
if err != nil {
utils.Fatalln("Error starting the mail server", err)
}
domainDAO := dao.DomainDAO{
Database: database,
}
templateName := createTemplateFile()
defer removeTemplateFile(templateName)
simpleNotification(domainDAO, templateName, messageChannel, errorChannel)
utils.Println("SUCCESS!")
}
示例11: restActionReport
func restActionReport(numberOfItems int,
content []byte,
requestBuilder func(int) (*http.Request, error),
expectedStatus int,
action string) string {
var client http.Client
totalDuration, domainsPerSecond := calculateRESTDurations(func() {
for i := 0; i < numberOfItems; i++ {
r, err := requestBuilder(i)
if err != nil {
utils.Fatalln("Error creating the HTTP request", err)
}
utils.BuildHTTPHeader(r, content)
response, err := client.Do(r)
if err != nil {
utils.Fatalln(fmt.Sprintf("Error detected when sending request for action %s"+
" and URI \"%s\"", action, r.URL.RequestURI()), err)
}
_, err = ioutil.ReadAll(response.Body)
if err != nil {
utils.Fatalln(fmt.Sprintf("Error detected when reading the response body for action %s"+
" and URI \"%s\"", action, r.URL.RequestURI()), err)
}
response.Body.Close()
if response.StatusCode != expectedStatus {
utils.Fatalln(fmt.Sprintf("Error with the domain object in the action %s. "+
"Expected HTTP status %d and got %d",
action, expectedStatus, response.StatusCode), nil)
}
}
}, numberOfItems)
var memStats runtime.MemStats
runtime.ReadMemStats(&memStats)
return fmt.Sprintf("% -8d | %-9s | %16s | %4d | %14.2f\n",
numberOfItems,
action,
time.Duration(int64(totalDuration)).String(),
domainsPerSecond,
float64(memStats.Alloc)/float64(MB),
)
}
示例12: updateDomainIfNoneMatch
func updateDomainIfNoneMatch(database *mgo.Database) {
requestContent := `{
"Nameservers": [
{ "host": "ns1.example.com.br.", "ipv4": "127.0.0.1" },
{ "host": "ns3.example.com.br.", "ipv6": "::1" }
],
"Owners": [
{ "email": "[email protected]", "language": "en-us" }
]
}`
r, err := http.NewRequest("PUT", "/domain/example.com.br.", strings.NewReader(requestContent))
if err != nil {
utils.Fatalln("Error creating the HTTP request", err)
}
domainCacheTest(database, r, requestContent, "If-None-Match", []DomainCacheTestData{
{
HeaderValue: "3",
ExpectedHTTPStatus: http.StatusPreconditionFailed,
},
{
HeaderValue: "abcdef",
ExpectedHTTPStatus: http.StatusNoContent,
},
})
}
示例13: main
func main() {
flag.Parse()
var clientConfig ClientDomainVerificationTestConfigFile
err := utils.ReadConfigFile(configFilePath, &clientConfig)
config.ShelterConfig = clientConfig.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)
}
utils.StartDNSServer(clientConfig.DNSServerPort, clientConfig.Scan.UDPMaxSize)
finishRESTServer := utils.StartRESTServer()
defer finishRESTServer()
utils.StartWebClient()
scanDomain()
queryDomain()
utils.Println("SUCCESS!")
}
示例14: generateAndSaveDomain
// Function to mock a domain
func generateAndSaveDomain(fqdn string, domainDAO dao.DomainDAO, language string) {
lastOKAt := time.Now().Add(time.Duration(-config.ShelterConfig.Notification.NameserverErrorAlertDays*24) * time.Hour)
owner, _ := mail.ParseAddress("[email protected]")
domain := model.Domain{
FQDN: fqdn,
Nameservers: []model.Nameserver{
{
Host: fmt.Sprintf("ns1.%s", fqdn),
IPv4: net.ParseIP("127.0.0.1"),
LastStatus: model.NameserverStatusServerFailure,
LastOKAt: lastOKAt,
},
},
Owners: []model.Owner{
{
Email: owner,
Language: language,
},
},
}
if err := domainDAO.Save(&domain); err != nil {
utils.Fatalln(fmt.Sprintf("Fail to save domain %s", domain.FQDN), err)
}
}
示例15: main
func main() {
flag.Parse()
var config ScanQuerierTestConfigFile
err := utils.ReadConfigFile(configFilePath, &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)
}
utils.StartDNSServer(config.Server.Port, config.Scan.UDPMaxSize)
domainWithNoDNSErrors(config)
domainWithNoDNSSECErrors(config)
domainDNSTimeout(config)
domainDNSUnknownHost(config)
// Scan querier performance report is optional and only generated when the report file
// path parameter is given
if report {
scanQuerierReport(config)
}
if inputReport {
inputScanReport(config)
}
utils.Println("SUCCESS!")
}