github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/tools/syz-db/syz-db_test.go (about) 1 // Copyright (c) Qualcomm Innovation Center, Inc. All rights reserved 2 // Copyright 2024 syzkaller project authors. All rights reserved. 3 // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 4 5 package main 6 7 import ( 8 "fmt" 9 "os" 10 "strings" 11 "testing" 12 13 "github.com/google/syzkaller/pkg/db" 14 "github.com/google/syzkaller/pkg/osutil" 15 "github.com/google/syzkaller/prog" 16 "github.com/google/syzkaller/sys/targets" 17 "github.com/stretchr/testify/assert" 18 ) 19 20 func TestDBRemoveMatchLine(t *testing.T) { 21 fn, err := osutil.TempFile("syzkaller.test.db") 22 if err != nil { 23 t.Fatal(err) 24 } 25 defer os.Remove(fn) 26 db1, err := db.Open(fn, false) 27 if err != nil { 28 t.Fatalf("failed to open db: %v", err) 29 } 30 input := []string{ 31 "r0 = open$dir(&(0x7f0000000000), 0x161840, 0x162)", 32 "ioctl$BTRFS_IOC_DEFRAG(r0, 0x50009402, 0x0)", 33 "close(r0)", 34 } 35 want := []string{ 36 "ioctl$BTRFS_IOC_DEFRAG(0xffffffffffffffff, 0x50009402, 0x0)", 37 "close(0xffffffffffffffff)", 38 } 39 db1.Save("rm", []byte(strings.Join(input, "\n")), 0) 40 db1.Flush() 41 target, err := prog.GetTarget(targets.Linux, targets.AMD64) 42 if err != nil { 43 t.Fatal(err) 44 } 45 rm(fn, "open$dir", target) 46 db1, err = db.Open(fn, false) 47 if err != nil { 48 t.Fatalf("failed to open db: %v", err) 49 } 50 expected := fmt.Sprintf("%s\n", strings.Join(want, "\n")) 51 assert.Equal(t, expected, string(db1.Records["rm"].Val)) 52 }