golang.org/x/build@v0.0.0-20240506185731-218518f32b70/perfdata/db/query_test.go (about) 1 // Copyright 2017 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package db 6 7 import "testing" 8 9 func TestParseWord(t *testing.T) { 10 tests := []struct { 11 word string 12 want part 13 wantErr bool 14 }{ 15 {"key:value", part{"key", equals, "value", ""}, false}, 16 {"key>value", part{"key", gt, "value", ""}, false}, 17 {"key<value", part{"key", lt, "value", ""}, false}, 18 {"bogus query", part{}, true}, 19 } 20 for _, test := range tests { 21 t.Run(test.word, func(t *testing.T) { 22 p, err := parseWord(test.word) 23 if test.wantErr { 24 if err == nil { 25 t.Fatalf("have %#v, want error", p) 26 } 27 return 28 } 29 if err != nil { 30 t.Fatalf("have error %v", err) 31 } 32 if p != test.want { 33 t.Fatalf("parseWord = %#v, want %#v", p, test.want) 34 } 35 p, err = p.merge(part{p.key, gt, "", ""}) 36 if err != nil { 37 t.Fatalf("failed to merge with noop: %v", err) 38 } 39 if p != test.want { 40 t.Fatalf("merge with noop = %#v, want %#v", p, test.want) 41 } 42 }) 43 } 44 }