Skip to content

Commit cf7a5f8

Browse files
committed
Swift: add qltest.sh tests
1 parent e868cdf commit cf7a5f8

File tree

16 files changed

+156
-1
lines changed

16 files changed

+156
-1
lines changed

.github/workflows/swift-qltest.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,23 @@ jobs:
2323
- uses: ./.github/actions/fetch-codeql
2424
- name: Check QL formatting
2525
run: find ql "(" -name "*.ql" -or -name "*.qll" ")" -print0 | xargs -0 codeql query format --check-only
26+
qltest-test:
27+
runs-on: ubuntu-latest
28+
steps:
29+
- uses: actions/checkout@v3
30+
- uses: bazelbuild/setup-bazelisk@v2
31+
- uses: actions/setup-python@v4
32+
with:
33+
python-version-file: 'swift/.python-version'
34+
- name: Test qltest.sh
35+
run: |
36+
bazel test //swift/tools/test/qltest
2637
qltest:
2738
runs-on: ${{ matrix.os }}
2839
strategy:
2940
fail-fast: false
3041
matrix:
31-
os : [ubuntu-20.04, macos-latest]
42+
os: [ ubuntu-20.04, macos-latest ]
3243
steps:
3344
- uses: actions/checkout@v3
3445
- uses: ./.github/actions/fetch-codeql
File renamed without changes.

swift/tools/BUILD.bazel

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package(default_visibility = ["//visibility:public"])
2+
3+
load("@rules_pkg//:mappings.bzl", "pkg_attributes", "pkg_files")
4+
5+
sh_binary(
6+
name = "qltest",
7+
srcs = ["qltest.sh"],
8+
)
9+
10+
sh_binary(
11+
name = "autobuild",
12+
srcs = ["autobuild.sh"],
13+
)
14+
15+
pkg_files(
16+
name = "tools",
17+
srcs = [
18+
":autobuild",
19+
":qltest",
20+
],
21+
attributes = pkg_attributes(mode = "0755"),
22+
prefix = "tools",
23+
)

swift/tools/test/qltest/BUILD.bazel

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
py_library(
2+
name = "utils",
3+
srcs = ["utils.py"],
4+
)
5+
6+
[
7+
py_test(
8+
name = "test_%s" % test[:test.find("/")],
9+
size = "small",
10+
srcs = [test],
11+
args = [
12+
"$(location //swift/tools:qltest)",
13+
],
14+
data = [
15+
"//swift/tools:qltest",
16+
] + glob([test.replace("test.py", "*")]),
17+
main = test,
18+
deps = [":utils"],
19+
)
20+
for test in glob(["*/test.py"])
21+
]
22+
23+
test_suite(
24+
name = "qltest",
25+
)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
//codeql-extractor-options: -some -option-for-a
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
//codeql-extractor-options: -some-other -option-for-b
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from swift.tools.test.qltest.utils import *
2+
3+
set_dummy_extractor()
4+
run_qltest()
5+
assert_extractor_executed_with(
6+
"a.swift -some -option-for-a",
7+
"b.swift -some-other -option-for-b",
8+
)

swift/tools/test/qltest/failing_run/a.swift

Whitespace-only changes.

swift/tools/test/qltest/failing_run/b.swift

Whitespace-only changes.

swift/tools/test/qltest/failing_run/c.swift

Whitespace-only changes.

0 commit comments

Comments
 (0)