package envpath import ( "fmt" "strings" "testing" ) const file = `# Generated for envman. Do not edit. PATH="/foo" # ignore # ignore PATH="/foo" PATH="/foo:$PATH" PATH="/foo:$PATH" PATH="/foo:"$PATH" PATH="/foo:""$PATH" PATH="" PATH= JUNK="" JUNK= ="" = whatever PATH="/boo:$PATH" PATH="" ` func TestParse(t *testing.T) { exppaths := []string{ `PATH="/foo"`, `PATH="/foo:$PATH"`, `PATH=""`, `PATH="/boo:$PATH"`, } newlines, warnings := Parse([]byte(file), "PATH") newfile := `PATH="` + strings.Join(newlines, "\"\n\tPATH=\"") + `"` expfile := strings.Join(exppaths, "\n\t") if newfile != expfile { t.Errorf("\nExpected:\n\t%s\nGot:\n\t%s", expfile, newfile) } for i := range warnings { w := warnings[i] fmt.Printf("warning dropping %q from line %d: %s\n", w.Message, w.LineNumber, w.Line) } }