|
|
|
@ -15,7 +15,6 @@ package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"flag"
|
|
|
|
|
"fmt"
|
|
|
|
|
"net/http"
|
|
|
|
|
"os"
|
|
|
|
@ -31,35 +30,23 @@ import (
|
|
|
|
|
"github.com/prometheus/prometheus/util/testutil"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var promPath string
|
|
|
|
|
var promPath = os.Args[0]
|
|
|
|
|
var promConfig = filepath.Join("..", "..", "documentation", "examples", "prometheus.yml")
|
|
|
|
|
var promData = filepath.Join(os.TempDir(), "data")
|
|
|
|
|
|
|
|
|
|
func TestMain(m *testing.M) {
|
|
|
|
|
flag.Parse()
|
|
|
|
|
if testing.Short() {
|
|
|
|
|
os.Exit(m.Run())
|
|
|
|
|
for i, arg := range os.Args {
|
|
|
|
|
if arg == "-test.main" {
|
|
|
|
|
os.Args = append(os.Args[:i], os.Args[i+1:]...)
|
|
|
|
|
main()
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// On linux with a global proxy the tests will fail as the go client(http,grpc) tries to connect through the proxy.
|
|
|
|
|
os.Setenv("no_proxy", "localhost,127.0.0.1,0.0.0.0,:")
|
|
|
|
|
|
|
|
|
|
var err error
|
|
|
|
|
promPath, err = os.Getwd()
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Printf("can't get current dir :%s \n", err)
|
|
|
|
|
os.Exit(1)
|
|
|
|
|
}
|
|
|
|
|
promPath = filepath.Join(promPath, "prometheus")
|
|
|
|
|
|
|
|
|
|
build := exec.Command("go", "build", "-o", promPath)
|
|
|
|
|
output, err := build.CombinedOutput()
|
|
|
|
|
if err != nil {
|
|
|
|
|
fmt.Printf("compilation error :%s \n", output)
|
|
|
|
|
os.Exit(1)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
exitCode := m.Run()
|
|
|
|
|
os.Remove(promPath)
|
|
|
|
|
os.RemoveAll(promData)
|
|
|
|
|
os.Exit(exitCode)
|
|
|
|
|
}
|
|
|
|
@ -70,7 +57,7 @@ func TestStartupInterrupt(t *testing.T) {
|
|
|
|
|
t.Skip("skipping test in short mode.")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
prom := exec.Command(promPath, "--config.file="+promConfig, "--storage.tsdb.path="+promData)
|
|
|
|
|
prom := exec.Command(promPath, "-test.main", "--config.file="+promConfig, "--storage.tsdb.path="+promData)
|
|
|
|
|
err := prom.Start()
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Errorf("execution error: %v", err)
|
|
|
|
@ -170,7 +157,7 @@ func TestFailedStartupExitCode(t *testing.T) {
|
|
|
|
|
fakeInputFile := "fake-input-file"
|
|
|
|
|
expectedExitStatus := 1
|
|
|
|
|
|
|
|
|
|
prom := exec.Command(promPath, "--config.file="+fakeInputFile)
|
|
|
|
|
prom := exec.Command(promPath, "-test.main", "--config.file="+fakeInputFile)
|
|
|
|
|
err := prom.Run()
|
|
|
|
|
testutil.NotOk(t, err)
|
|
|
|
|
|
|
|
|
@ -258,7 +245,7 @@ func TestWALSegmentSizeBounds(t *testing.T) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for size, expectedExitStatus := range map[string]int{"9MB": 1, "257MB": 1, "10": 2, "1GB": 1, "12MB": 0} {
|
|
|
|
|
prom := exec.Command(promPath, "--storage.tsdb.wal-segment-size="+size, "--config.file="+promConfig)
|
|
|
|
|
prom := exec.Command(promPath, "-test.main", "--storage.tsdb.wal-segment-size="+size, "--config.file="+promConfig)
|
|
|
|
|
err := prom.Start()
|
|
|
|
|
testutil.Ok(t, err)
|
|
|
|
|
|
|
|
|
|