File tree Expand file tree Collapse file tree 3 files changed +69
-0
lines changed Expand file tree Collapse file tree 3 files changed +69
-0
lines changed Original file line number Diff line number Diff line change 30
30
import com .semmle .js .extractor .FileExtractor .FileType ;
31
31
import com .semmle .js .extractor .VirtualSourceRoot ;
32
32
import com .semmle .util .data .StringUtil ;
33
+ import com .semmle .util .exception .Exceptions ;
33
34
import com .semmle .util .exception .UserError ;
34
35
import com .semmle .util .files .FileUtil ;
35
36
import com .semmle .util .files .FileUtil8 ;
@@ -443,8 +444,12 @@ public void excludeByClassificationBadPath() throws IOException {
443
444
444
445
/** Hide {@code p} on using {@link DosFileAttributeView} if available; otherwise do nothing. */
445
446
private void hide (Path p ) throws IOException {
447
+ try {
446
448
DosFileAttributeView attrs = Files .getFileAttributeView (p , DosFileAttributeView .class );
447
449
if (attrs != null ) attrs .setHidden (true );
450
+ } catch (IOException e ) {
451
+ Exceptions .ignore (e , "On Linux within the bazel sandbox, we get a DosFileAttributeView that then throws an exception upon use" );
452
+ }
448
453
}
449
454
450
455
@ Test
Original file line number Diff line number Diff line change
1
+ java_test (
2
+ name = "test_jar" ,
3
+ srcs = glob (["**/*.java" ]),
4
+ test_class = "com.semmle.js.extractor.test.AllTests" ,
5
+ deps = [
6
+ "//javascript/extractor" ,
7
+ "//javascript/extractor:deps" ,
8
+ "@//resources/lib/java/DO_NOT_DISTRIBUTE:junit" ,
9
+ ],
10
+ )
11
+
12
+ # We need to unzip the typescript wrapper, and provide node on the path.
13
+ # Therefore, we're wrapping the java_test inside a sh_test.
14
+ sh_test (
15
+ name = "test" ,
16
+ size = "small" ,
17
+ srcs = ["run_tests.sh" ],
18
+ args = [
19
+ "$(execpath @nodejs//:node_bin)" ,
20
+ "$(JAVABASE)/bin/java" ,
21
+ "$(rootpath //javascript/extractor/lib/typescript)" ,
22
+ "$(rootpath test_jar_deploy.jar)" ,
23
+ ],
24
+ data = [
25
+ ":test_jar_deploy.jar" ,
26
+ "//javascript/extractor/lib/typescript" ,
27
+ "//javascript/extractor/parser-tests" ,
28
+ "//javascript/extractor/tests" ,
29
+ "@bazel_tools//tools/jdk:current_java_runtime" ,
30
+ "@nodejs//:node_bin" ,
31
+ ],
32
+ toolchains = ["@bazel_tools//tools/jdk:current_java_runtime" ],
33
+ )
Original file line number Diff line number Diff line change
1
+ NODE=$1
2
+ JAVA=$2
3
+ PARSER_WRAPPER=$3
4
+ TEST_JAR=$4
5
+
6
+ TEMP=$( mktemp -d)
7
+
8
+ UNAME=$( uname -s)
9
+ echo $UNAME
10
+ # On Windows, the symlink set up by bazel that points at the test jar is a msys2/linux-style path
11
+ # The JVM can't resolve that, therefore copy the jar to the temp directory, and then set the
12
+ # windows path to it
13
+ if [[ " $UNAME " =~ _NT ]]; then
14
+ cp $TEST_JAR $TEMP /test.jar
15
+ TEST_JAR=$( cygpath -w $TEMP /test.jar)
16
+ echo " On Windows, new test jar: $TEST_JAR "
17
+ fi
18
+
19
+ # unpack parser wrapper
20
+ unzip -q $PARSER_WRAPPER -d $TEMP /parser_wrapper
21
+ export SEMMLE_TYPESCRIPT_PARSER_WRAPPER=$TEMP /parser_wrapper/javascript/tools/typescript-parser-wrapper/main.js
22
+
23
+ # setup node on path
24
+ NODE=$( realpath $NODE )
25
+ export PATH=" $PATH :$( dirname $NODE ) "
26
+
27
+ $JAVA -Dbazel.test_suite=com.semmle.js.extractor.test.AllTests -jar $TEST_JAR
28
+ EXIT_CODE=$?
29
+
30
+ rm -rf $TEMP
31
+ exit $EXIT_CODE
You can’t perform that action at this time.
0 commit comments