executor: parse tracking_url and error on missing application_id
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -30,7 +30,7 @@ func TestRun_FakeBinary(t *testing.T) {
|
||||
|
||||
res, err := Run(ctx, SparkSubmitOpts{
|
||||
Binary: "/bin/echo",
|
||||
Args: []string{"--master", "yarn; rm -rf /tmp/this-should-not-exist"},
|
||||
Args: []string{"--master", "yarn; rm -rf /tmp/this-should-not-exist", "Submitted application application_12345_0001"},
|
||||
Timeout: 3 * time.Second,
|
||||
})
|
||||
if err != nil {
|
||||
@@ -43,8 +43,8 @@ func TestRun_FakeBinary(t *testing.T) {
|
||||
if !strings.Contains(res.StdoutTail, "yarn; rm -rf /tmp/this-should-not-exist") {
|
||||
t.Errorf("stdout missing literal arg, got: %q", res.StdoutTail)
|
||||
}
|
||||
if res.AppID != "" {
|
||||
t.Errorf("AppID should be empty for echo, got %q", res.AppID)
|
||||
if res.AppID != "application_12345_0001" {
|
||||
t.Errorf("AppID = %q, want application_12345_0001", res.AppID)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,22 +66,26 @@ func TestRun_NonZeroExit(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// TestMatchAppID locks down the regex so a YARN output tweak doesn't
|
||||
// TestSubmittedAppPattern locks down the regex so a YARN output tweak doesn't
|
||||
// silently break app_id extraction.
|
||||
func TestMatchAppID(t *testing.T) {
|
||||
func TestSubmittedAppPattern(t *testing.T) {
|
||||
cases := []struct {
|
||||
in, want string
|
||||
}{
|
||||
{"Submitted application application_12345_0001", "application_12345_0001"},
|
||||
{"... some prefix application_999_42 ... tail", "application_999_42"},
|
||||
{"Submitted application application_999_42 extra", "application_999_42"},
|
||||
{"no app id here", ""},
|
||||
{"", ""},
|
||||
{"application_1_2 application_3_4", "application_1_2"}, // first match
|
||||
{"Submitted application app_1_2 Submitted application app_3_4", "app_1_2"}, // first match
|
||||
}
|
||||
for _, tc := range cases {
|
||||
got := matchAppID(tc.in)
|
||||
m := submittedAppPattern.FindStringSubmatch(tc.in)
|
||||
var got string
|
||||
if m != nil {
|
||||
got = m[1]
|
||||
}
|
||||
if got != tc.want {
|
||||
t.Errorf("matchAppID(%q) = %q, want %q", tc.in, got, tc.want)
|
||||
t.Errorf("submittedAppPattern(%q) = %q, want %q", tc.in, got, tc.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user