package main import ( "os" "testing" ) func TestIncrementVersion(t *testing.T) { const TEST_VERSIONFILE = "main_test-VERSION" err := os.WriteFile(TEST_VERSIONFILE, []byte("0.0.0-0"), 0664) if err != nil { t.Fatalf("error writing %s: %v\n", TEST_VERSIONFILE, err) } defer os.Remove(TEST_VERSIONFILE) version, err := NewVersion(TEST_VERSIONFILE) if err != nil { t.Fatalf("error reading %s: %v\n", TEST_VERSIONFILE, err) } if want, got := "0.0.0-0", version.String(); want != got { t.Fatalf("error: wanted %s; got %s\n", want, got) } version = IncrementVersion(version, false, false, false, true) if want, got := "0.0.0-1", version.String(); want != got { t.Fatalf("error: wanted %s; got %s\n", want, got) } err = version.Flush() if err != nil { t.Fatalf("error flushing: %v\n", err) } version, err = NewVersion(TEST_VERSIONFILE) if err != nil { t.Fatalf("error reading %s: %v\n", TEST_VERSIONFILE, err) } else if want, got := "0.0.0-1", version.String(); want != got { t.Fatalf("error: wanted %s; got %s\n", want, got) } version = IncrementVersion(version, false, false, true, false) if want, got := "0.0.1-1", version.String(); want != got { t.Fatalf("error: wanted %s; got %s\n", want, got) } err = version.Flush() if err != nil { t.Fatalf("error flushing: %v\n", err) } version, err = NewVersion(TEST_VERSIONFILE) if err != nil { t.Fatalf("error reading %s: %v\n", TEST_VERSIONFILE, err) } else if want, got := "0.0.1-1", version.String(); want != got { t.Fatalf("error: wanted %s; got %s\n", want, got) } version = IncrementVersion(version, false, true, false, false) if want, got := "0.1.1-1", version.String(); want != got { t.Fatalf("error: wanted %s; got %s\n", want, got) } err = version.Flush() if err != nil { t.Fatalf("error flushing: %v\n", err) } version, err = NewVersion(TEST_VERSIONFILE) if err != nil { t.Fatalf("error reading %s: %v\n", TEST_VERSIONFILE, err) } else if want, got := "0.1.1-1", version.String(); want != got { t.Fatalf("error: wanted %s; got %s\n", want, got) } version = IncrementVersion(version, true, false, false, false) if want, got := "1.1.1-1", version.String(); want != got { t.Fatalf("error: wanted %s; got %s\n", want, got) } err = version.Flush() if err != nil { t.Fatalf("error flushing: %v\n", err) } version, err = NewVersion(TEST_VERSIONFILE) if err != nil { t.Fatalf("error reading %s: %v\n", TEST_VERSIONFILE, err) } else if want, got := "1.1.1-1", version.String(); want != got { t.Fatalf("error: wanted %s; got %s\n", want, got) } }