1
1
use std:: fs:: File ;
2
- use std:: io:: { Write , Read , BufRead } ;
2
+ use std:: io:: { Read , Write } ;
3
3
use std:: path:: { Path , PathBuf } ;
4
4
5
5
use codeql_extractor:: extractor:: simple;
6
6
use flate2:: read:: GzDecoder ;
7
7
use tree_sitter_ql;
8
8
9
-
10
-
11
9
/// An very simple happy-path test.
12
10
/// We run the extractor using the tree-sitter-ql grammar and a single source file,
13
11
/// and check that we get a reasonable-looking trap file in the expected location.
@@ -30,14 +28,16 @@ fn simple_extractor() {
30
28
let foo_qll = {
31
29
let path = source_archive_dir. join ( "foo.qll" ) ;
32
30
let mut file = File :: create ( & path) . expect ( "Failed to create src/foo.qll" ) ;
33
- file. write_all ( b"predicate p(int a) { a = 1 }" ) . expect ( "Failed to write to foo.qll" ) ;
31
+ file. write_all ( b"predicate p(int a) { a = 1 }" )
32
+ . expect ( "Failed to write to foo.qll" ) ;
34
33
PathBuf :: from ( path)
35
34
} ;
36
35
37
36
let file_list = {
38
37
let path = root_dir. join ( "files.txt" ) ;
39
38
let mut file = File :: create ( & path) . expect ( "Failed to create files.txt" ) ;
40
- file. write_all ( foo_qll. as_path ( ) . display ( ) . to_string ( ) . as_bytes ( ) ) . expect ( "Failed to write to files.txt" ) ;
39
+ file. write_all ( foo_qll. as_path ( ) . display ( ) . to_string ( ) . as_bytes ( ) )
40
+ . expect ( "Failed to write to files.txt" ) ;
41
41
path
42
42
} ;
43
43
@@ -54,14 +54,20 @@ fn simple_extractor() {
54
54
55
55
// Check for the presence of $root/trap/$root/src/foo.qll
56
56
{
57
- let root_dir_relative = {
57
+ let root_dir_relative = {
58
58
let r = root_dir. as_path ( ) . display ( ) . to_string ( ) ;
59
59
r. strip_prefix ( "/" ) . unwrap ( ) . to_string ( )
60
60
} ;
61
- let foo_qll_trap_gz = root_dir. join ( "trap" ) . join ( root_dir_relative) . join ( "src/foo.qll.trap.gz" ) ;
62
- let mut decoder = GzDecoder :: new ( File :: open ( foo_qll_trap_gz) . expect ( "Failed to open foo.qll.trap.gz" ) ) ;
61
+ let foo_qll_trap_gz = root_dir
62
+ . join ( "trap" )
63
+ . join ( root_dir_relative)
64
+ . join ( "src/foo.qll.trap.gz" ) ;
65
+ let mut decoder =
66
+ GzDecoder :: new ( File :: open ( foo_qll_trap_gz) . expect ( "Failed to open foo.qll.trap.gz" ) ) ;
63
67
let mut first_line = [ 0 ; 31 ] ;
64
- decoder. read_exact ( & mut first_line) . expect ( "Failed to read from foo.qll.trap.gz" ) ;
68
+ decoder
69
+ . read_exact ( & mut first_line)
70
+ . expect ( "Failed to read from foo.qll.trap.gz" ) ;
65
71
assert_eq ! ( first_line. as_slice( ) , b"// Auto-generated TRAP file for" ) ;
66
72
}
67
73
}
@@ -70,4 +76,4 @@ fn create_dir(root: &Path, path: impl AsRef<Path>) -> PathBuf {
70
76
let full_path = root. join ( path) ;
71
77
std:: fs:: create_dir_all ( & full_path) . expect ( "Failed to create directory" ) ;
72
78
full_path. into ( )
73
- }
79
+ }
0 commit comments