80 lines
2.1 KiB
Go
80 lines
2.1 KiB
Go
package executor
|
|
|
|
import "testing"
|
|
|
|
func TestParseAppID_FromStdout(t *testing.T) {
|
|
stdout := "some prefix\nSubmitted application application_123_456\n"
|
|
stderr := "random log\n"
|
|
appID, trackingURL, ok := parseSparkSubmitOutput(stdout, stderr)
|
|
if !ok {
|
|
t.Fatal("expected ok")
|
|
}
|
|
if appID != "application_123_456" {
|
|
t.Errorf("appID=%q, want application_123_456", appID)
|
|
}
|
|
if trackingURL != "" {
|
|
t.Errorf("trackingURL=%q, want empty", trackingURL)
|
|
}
|
|
}
|
|
|
|
func TestParseAppID_FromStderr(t *testing.T) {
|
|
stdout := ""
|
|
stderr := "Submitted application application_123_456\n"
|
|
appID, trackingURL, ok := parseSparkSubmitOutput(stdout, stderr)
|
|
if !ok {
|
|
t.Fatal("expected ok")
|
|
}
|
|
if appID != "application_123_456" {
|
|
t.Errorf("appID=%q, want application_123_456", appID)
|
|
}
|
|
if trackingURL != "" {
|
|
t.Errorf("trackingURL=%q, want empty", trackingURL)
|
|
}
|
|
}
|
|
|
|
func TestParseAppID_FromTrackingURL(t *testing.T) {
|
|
stdout := ""
|
|
stderr := "Log line\ntracking URL: http://rm.example.com:8088/proxy/application_123_456/\n"
|
|
appID, trackingURL, ok := parseSparkSubmitOutput(stdout, stderr)
|
|
if !ok {
|
|
t.Fatal("expected ok")
|
|
}
|
|
if appID != "application_123_456" {
|
|
t.Errorf("appID=%q, want application_123_456", appID)
|
|
}
|
|
wantURL := "http://rm.example.com:8088/proxy/application_123_456/"
|
|
if trackingURL != wantURL {
|
|
t.Errorf("trackingURL=%q, want %q", trackingURL, wantURL)
|
|
}
|
|
}
|
|
|
|
func TestParseAppID_NoAppID(t *testing.T) {
|
|
stdout := ""
|
|
stderr := "some random log"
|
|
appID, trackingURL, ok := parseSparkSubmitOutput(stdout, stderr)
|
|
if ok {
|
|
t.Fatal("expected not ok")
|
|
}
|
|
if appID != "" {
|
|
t.Errorf("appID=%q, want empty", appID)
|
|
}
|
|
if trackingURL != "" {
|
|
t.Errorf("trackingURL=%q, want empty", trackingURL)
|
|
}
|
|
}
|
|
|
|
func TestParseAppID_BadTrackingURL(t *testing.T) {
|
|
stdout := ""
|
|
stderr := "tracking URL: http://rm.example.com:8088/proxy/not-an-app/\n"
|
|
appID, trackingURL, ok := parseSparkSubmitOutput(stdout, stderr)
|
|
if ok {
|
|
t.Fatal("expected not ok")
|
|
}
|
|
if appID != "" {
|
|
t.Errorf("appID=%q, want empty", appID)
|
|
}
|
|
if trackingURL != "" {
|
|
t.Errorf("trackingURL=%q, want empty", trackingURL)
|
|
}
|
|
}
|