@@ -656,7 +656,8 @@ func TestAppendCodeqlQuerySuite(t *testing.T) {
656
656
utils := codeqlExecuteScanMockUtils {
657
657
ExecMockRunner : & mock.ExecMockRunner {
658
658
Stub : func (call string , stdoutReturn map [string ]string , shouldFailOnCommand map [string ]error , stdout io.Writer ) error {
659
- return fmt .Errorf ("error" )
659
+ stdout .Write ([]byte ("php-security-extended.qls" ))
660
+ return nil
660
661
},
661
662
},
662
663
}
@@ -666,6 +667,101 @@ func TestAppendCodeqlQuerySuite(t *testing.T) {
666
667
assert .Equal (t , 3 , len (cmd ))
667
668
assert .Equal (t , "php-security-extended.qls" , cmd [2 ])
668
669
})
670
+
671
+ t .Run ("Error while transforming querySuite" , func (t * testing.T ) {
672
+ utils := codeqlExecuteScanMockUtils {
673
+ ExecMockRunner : & mock.ExecMockRunner {
674
+ Stub : func (call string , stdoutReturn map [string ]string , shouldFailOnCommand map [string ]error , stdout io.Writer ) error {
675
+ return fmt .Errorf ("error" )
676
+ },
677
+ },
678
+ }
679
+ cmd := []string {"database" , "analyze" }
680
+ querySuite := "php-security-extended.qls"
681
+ cmd = appendCodeqlQuerySuite (utils , cmd , querySuite , `s/^(java|python)-(security-extended\.qls|security-and-quality\.qls)` )
682
+ assert .Equal (t , 3 , len (cmd ))
683
+ assert .Equal (t , "php-security-extended.qls" , cmd [2 ])
684
+ })
685
+
686
+ t .Run ("Empty transformed querySuite" , func (t * testing.T ) {
687
+ utils := codeqlExecuteScanMockUtils {
688
+ ExecMockRunner : & mock.ExecMockRunner {
689
+ Stub : func (call string , stdoutReturn map [string ]string , shouldFailOnCommand map [string ]error , stdout io.Writer ) error {
690
+ stdout .Write ([]byte ("" ))
691
+ return nil
692
+ },
693
+ },
694
+ }
695
+ cmd := []string {"database" , "analyze" }
696
+ querySuite := "python-security-extended.qls"
697
+ cmd = appendCodeqlQuerySuite (utils , cmd , querySuite , `s/^(java|python)-(security-extended\.qls|security-and-quality\.qls)//` )
698
+ assert .Equal (t , 2 , len (cmd ))
699
+ })
700
+ }
701
+
702
+ func TestTransformQuerySuite (t * testing.T ) {
703
+ t .Run ("Add prefix to querySuite" , func (t * testing.T ) {
704
+ utils := codeqlExecuteScanMockUtils {
705
+ ExecMockRunner : & mock.ExecMockRunner {
706
+ Stub : func (call string , stdoutReturn map [string ]string , shouldFailOnCommand map [string ]error , stdout io.Writer ) error {
707
+ stdout .Write ([]byte ("test-java-security-extended.qls" ))
708
+ return nil
709
+ },
710
+ },
711
+ }
712
+ input := "java-security-extended.qls"
713
+ transformString := `s/^(java|python)-(security-extended.qls|security-and-quality.qls)/test-\1-\2/`
714
+ expect := "test-java-security-extended.qls"
715
+ result := transformQuerySuite (utils , input , transformString )
716
+ assert .Equal (t , expect , result )
717
+ })
718
+
719
+ t .Run ("Don't add prefix to querySuite" , func (t * testing.T ) {
720
+ utils := codeqlExecuteScanMockUtils {
721
+ ExecMockRunner : & mock.ExecMockRunner {
722
+ Stub : func (call string , stdoutReturn map [string ]string , shouldFailOnCommand map [string ]error , stdout io.Writer ) error {
723
+ stdout .Write ([]byte ("php-security-extended.qls" ))
724
+ return nil
725
+ },
726
+ },
727
+ }
728
+ input := "php-security-extended.qls"
729
+ transformString := `s/^(java|python)-(security-extended.qls|security-and-quality.qls)/test-\1-\2/`
730
+ expected := "php-security-extended.qls"
731
+ result := transformQuerySuite (utils , input , transformString )
732
+ assert .Equal (t , expected , result )
733
+
734
+ })
735
+
736
+ t .Run ("Failed running transform cmd" , func (t * testing.T ) {
737
+ utils := codeqlExecuteScanMockUtils {
738
+ ExecMockRunner : & mock.ExecMockRunner {
739
+ Stub : func (call string , stdoutReturn map [string ]string , shouldFailOnCommand map [string ]error , stdout io.Writer ) error {
740
+ return fmt .Errorf ("error" )
741
+ },
742
+ },
743
+ }
744
+ input := "php-security-extended.qls"
745
+ transformString := `s//test-\1-\2/`
746
+ result := transformQuerySuite (utils , input , transformString )
747
+ assert .Equal (t , input , result )
748
+ })
749
+
750
+ t .Run ("Transform querySuite to empty string" , func (t * testing.T ) {
751
+ utils := codeqlExecuteScanMockUtils {
752
+ ExecMockRunner : & mock.ExecMockRunner {
753
+ Stub : func (call string , stdoutReturn map [string ]string , shouldFailOnCommand map [string ]error , stdout io.Writer ) error {
754
+ stdout .Write ([]byte ("" ))
755
+ return nil
756
+ },
757
+ },
758
+ }
759
+ input := "java-security-extended.qls"
760
+ transformString := `s/^(java|python)-(security-extended.qls|security-and-quality.qls)//`
761
+ expect := ""
762
+ result := transformQuerySuite (utils , input , transformString )
763
+ assert .Equal (t , expect , result )
764
+ })
669
765
}
670
766
671
767
func TestGetLangFromBuildTool (t * testing.T ) {
0 commit comments