Beispiel #1
0
func testDebug(t *testing.T, test Test) {
	jsonp := json.NewJsonParser()
	p := debug.NewLogger(jsonp, debug.NewLineLogger())
	t.Logf("Schema = %v", string(test.Schema))
	schema, err := ParseSchema(test.Schema)
	if err != nil {
		t.Fatalf("Parser error %v", err)
	}
	t.Logf("Parsed Schema %v", schema.JsonString())
	g, err := TranslateDraft4(schema)
	if err != nil {
		t.Fatalf("Translate error %v", err)
	}
	t.Logf("Translated = %v", g)
	t.Logf("Input = %v", string(test.Data))
	if err := jsonp.Init(test.Data); err != nil {
		t.Fatalf("parser Init error %v", err)
	}
	valid, err := catch(func() bool {
		return interp.Interpret(g, p)
	})
	if err != nil {
		t.Fatalf("Interpret error %v", err)
	} else if valid != test.Valid {
		t.Fatalf("expected %v got %v", test.Valid, valid)
	}
}
Beispiel #2
0
func TestDraft4(t *testing.T) {
	tests := buildTests(t)
	t.Logf("skipping files: %d", len(skippingFile))
	t.Logf("total number of tests: %d", len(tests))
	total := 0

	p := json.NewJsonParser()
	for _, test := range tests {
		if skippingFile[test.Filename] {
			//t.Logf("--- SKIP: %v", test)
			continue
		}
		if skippingTest[test.String()] {
			//t.Logf("--- SKIP: %v", test)
			continue
		}
		//t.Logf("--- RUN: %v", test)
		schema, err := ParseSchema(test.Schema)
		if err != nil {
			t.Errorf("--- FAIL: %v: Parse error %v", test, err)
		} else {
			g, err := TranslateDraft4(schema)
			if err != nil {
				t.Errorf("--- FAIL: %v: Translate error %v", test, err)
			} else {
				if err := p.Init(test.Data); err != nil {
					t.Errorf("--- FAIL: %v: parser Init error %v", test, err)
				}
				_ = interp.Interpret
				_ = g
				valid, err := catch(func() bool {
					return interp.Interpret(g, p)
				})
				if err != nil {
					t.Errorf("--- FAIL: %v: Interpret error %v", test, err)
				} else if valid != test.Valid {
					t.Errorf("--- FAIL: %v: expected %v got %v", test, test.Valid, valid)
				} else {
					//t.Logf("--- PASS: %v", test)
					total++
				}
			}
		}
	}
	t.Logf("number of tests passing: %d", total)
}