55 lines
874 B
Go
Executable File
55 lines
874 B
Go
Executable File
package notes
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestSearch(t *testing.T) {
|
|
d, err := ioutil.TempDir(os.TempDir(), "pattern*")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer os.RemoveAll(d)
|
|
for i := 0; i < 5; i++ {
|
|
f, err := ioutil.TempFile(d, fmt.Sprintf("file_%d", i))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
fmt.Fprintf(f, "this file is number %d", i)
|
|
f.Close()
|
|
}
|
|
|
|
n := New()
|
|
n.root = d
|
|
|
|
result, err := n.Search("this file")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if v := len(strings.Split(result, "\n")); v < 7 {
|
|
t.Fatal(v, result)
|
|
}
|
|
|
|
result, err = n.Search("number.4")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if v := len(strings.Split(result, "\n")); v > 4 {
|
|
t.Fatal(v, result)
|
|
}
|
|
}
|
|
|
|
func TestSearchBigFiles(t *testing.T) {
|
|
n := New()
|
|
n.root = "/usr/local/bin"
|
|
|
|
_, err := n.Search("this file")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|