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) } }
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) }