@@ -17,6 +17,7 @@ limitations under the License.
1717package llmdinferencesim
1818
1919import (
20+ "fmt"
2021 "os"
2122
2223 "github.com/go-logr/logr"
@@ -28,19 +29,31 @@ import (
2829
2930var _ = Describe ("Dataset" , func () {
3031 var (
31- dataset * Dataset
32- file_folder string
33- savePath string
32+ dataset * Dataset
33+ file_folder string
34+ savePath string
35+ validDBPath string
36+ pathToInvalidDB string
37+ pathNotExist string
38+ pathToInvalidTableDB string
39+ pathToInvalidColumnDB string
40+ pathToInvalidTypeDB string
3441 )
3542
3643 BeforeEach (func () {
3744 dataset = & Dataset {
3845 logger : logr .Discard (),
3946 }
40- file_folder = "./. llm-d"
47+ file_folder = ".llm-d"
4148 savePath = file_folder + "/test.sqlite3"
4249 err := os .MkdirAll (file_folder , os .ModePerm )
4350 Expect (err ).NotTo (HaveOccurred ())
51+ validDBPath = file_folder + "/test.valid.sqlite3"
52+ pathNotExist = file_folder + "/test.notexist.sqlite3"
53+ pathToInvalidDB = file_folder + "/test.invalid.sqlite3"
54+ pathToInvalidTableDB = file_folder + "/test.invalid.table.sqlite3"
55+ pathToInvalidColumnDB = file_folder + "/test.invalid.column.sqlite3"
56+ pathToInvalidTypeDB = file_folder + "/test.invalid.type.sqlite3"
4457 })
4558
4659 AfterEach (func () {
@@ -72,24 +85,47 @@ var _ = Describe("Dataset", func() {
7285 })
7386
7487 It ("should successfully init dataset" , func () {
75- validDBPath := file_folder + "/test.valid.sqlite3"
7688 err := dataset .Init (validDBPath , "" , "" )
89+ // debug: get the realpath
90+ wd , _ := os .Getwd ()
91+ realpath := fmt .Sprintf ("%s/%s" , wd , validDBPath )
92+ fmt .Println ("Using realpath:" , realpath )
7793 Expect (err ).NotTo (HaveOccurred ())
7894
79- row := dataset .db .QueryRow ("SELECT generated FROM llmd WHERE prompt_hash=X'b94d27b9934d041c52e5b721d7373f13a07ed5e79179d63c5d8a0c102a9d00b2';" )
80- var value string
81- err = row .Scan (& value )
95+ row := dataset .db .QueryRow ("SELECT n_gen_tokens FROM llmd WHERE prompt_hash=X'b94d27b9934d041c52e5b721d7373f13a07ed5e79179d63c5d8a0c102a9d00b2';" )
96+ var n_gen_tokens int
97+ err = row .Scan (& n_gen_tokens )
8298 Expect (err ).NotTo (HaveOccurred ())
83- Expect (value ).To (Equal ("world!" ))
99+ Expect (n_gen_tokens ).To (Equal (3 ))
84100 })
85101
86- It ("should raise err with invalid DB content " , func () {
87- err := dataset .connectToDB (file_folder )
102+ It ("should return error for non-existing DB path " , func () {
103+ err := dataset .connectToDB (pathNotExist )
88104 Expect (err ).To (HaveOccurred ())
89- // read from the db to verify it's not valid
90- row := dataset .db .QueryRow ("SELECT * FROM llmd;" )
91- var value string
92- err = row .Scan (& value )
105+ Expect (err .Error ()).To (ContainSubstring ("database file does not exist" ))
106+ })
107+
108+ It ("should return error for invalid DB file" , func () {
109+ err := dataset .connectToDB (pathToInvalidDB )
110+ Expect (err ).To (HaveOccurred ())
111+ Expect (err .Error ()).To (ContainSubstring ("file is not a database" ))
112+ })
113+
114+ It ("should return error for DB with invalid table" , func () {
115+ err := dataset .connectToDB (pathToInvalidTableDB )
116+ Expect (err ).To (HaveOccurred ())
117+ Expect (err .Error ()).To (ContainSubstring ("failed to verify database" ))
118+ })
119+
120+ It ("should return error for DB with invalid column" , func () {
121+ err := dataset .connectToDB (pathToInvalidColumnDB )
122+ Expect (err ).To (HaveOccurred ())
123+ Expect (err .Error ()).To (ContainSubstring ("missing expected column" ))
124+ })
125+
126+ It ("should return error for DB with invalid column type" , func () {
127+ err := dataset .connectToDB (pathToInvalidTypeDB )
93128 Expect (err ).To (HaveOccurred ())
129+ Expect (err .Error ()).To (ContainSubstring ("incorrect type" ))
94130 })
95131})
0 commit comments