์ฐธ๊ณ ํญ๋ชฉ
์ด ์ฝํ ์ธ ๋ CodeQL CLI์ ์ต์ ๋ฆด๋ฆฌ์ค์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ https://github.com/github/codeql-cli-binaries/releases์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ด์ ๋ฆด๋ฆฌ์ค์์ ์ด ๋ช
๋ น์ ์ฌ์ฉํ ์ ์๋ ์ต์
์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ํฐ๋ฏธ๋์์ ์ต์
์ ์ฌ์ฉํ์ฌ --help
๋ช
๋ น์ ์คํํฉ๋๋ค.
๊ฐ์
codeql test accept <options>... -- <test|dir>...
codeql test accept <options>... -- <test|dir>...
์ค๋ช
์คํจํ ๋จ์ ํ ์คํธ์ ๊ฒฐ๊ณผ๋ฅผ ์๋ฝํฉ๋๋ค.
์ด๋ codeql test run์ด ์คํจํ ํ
์คํธ์ ๋ํด ๋จ๊ธด .actual
ํ์ผ์ ์ด๋ฆ์ .expected
๋ก ๋ฐ๊พธ์ด ๋์ค์ ๋์ผํ ์ถ๋ ฅ์ ์ ๊ณตํ๋ ํ
์คํธ์์ ์คํํ๋ ๊ฒ์ด ํต๊ณผ๋๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋๋ก ํ๋ ํธ๋ฆฌํ ๋ช
๋ น์
๋๋ค. ์ผ๋ฐ์ ์ธ ํ์ผ ์กฐ์์ ํตํด ์ํํ ์๋ ์์ง๋ง ์ด ํน์ํ ๊ฒฝ์ฐ์๋ ํด๋น ๊ตฌ๋ฌธ์ด ๋ ์ ์ฉํ ์ ์์ต๋๋ค.
๋ช
๋ น์ค ์ธ์๋ ํ๋ ์ด์์ ํ
์คํธ(์ฆ, .ql(ref)
ํ์ผ)๋ฅผ ์ง์ ํ๊ณ ๋ช
๋ น์ ํด๋น ํ
์คํธ์์ .actual
ํ์ผ์ ์ด๋ฆ์ ์๋์ผ๋ก ๋์ถํฉ๋๋ค. .actual
ํ์ผ์ด ์๋ ํ
์คํธ๋ ์๋์ผ๋ก ๋ฌด์๋๋ฏ๋ก ์ด์ ์คํ์์ ์คํจํ ํ
์คํธ์ ๊ฒฐ๊ณผ๋ง ์ฝ๊ฒ ์๋ฝํ ์ ์์ต๋๋ค.
์ต์
๊ธฐ๋ณธ ์ต์
<test|dir>...
๊ฐ ์ธ์๋ ๋ค์ ์ค ํ๋์ ๋๋ค.
- ์คํํ ํ
์คํธ๋ฅผ ์ ์ํ๋
.ql
๋๋.qlref
ํ์ผ์ ๋๋ค. - ์คํํ ํ์ผ์ ์ฌ๊ท์ ์ผ๋ก ๊ฒ์ํ ๋๋ ํฐ๋ฆฌ์ ๋๋ค.
--slice=<N/M>
[๊ณ ๊ธ] ํ ์คํธ ์ฌ๋ก๋ฅผ ๋๋ต ๊ฐ์ ํฌ๊ธฐ์ _M_๊ฐ์ ์กฐ๊ฐ์ผ๋ก ๋๋๊ณ ๊ทธ ์ค Nth๋ฒ์งธ ์กฐ๊ฐ๋ง ์ฒ๋ฆฌํฉ๋๋ค. ํ ์คํธ ํ๋ก์ธ์ค์ ์๋ ๋ณ๋ ฌํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
--[no-]strict-test-discovery
[๊ณ ๊ธ] ํ
์คํธ๋ก ํ๊ณ ํ๊ฒ ์๋ณํ ์ ์๋ ์ฟผ๋ฆฌ๋ง ์ฌ์ฉํฉ๋๋ค.
์ด ๋ชจ๋๋ ๋จ์ ํ
์คํธ๋ฅผ ์ ์ํ๋ .ql
ํ์ผ๊ณผ ์ ์ฉํ ์ฟผ๋ฆฌ์ธ .ql
ํ์ผ์ ๊ตฌ๋ถํ๋ ค๊ณ ํฉ๋๋ค. ์ด ์ต์
์ ๋๋ ํฐ๋ฆฌ ํธ๋ฆฌ์ ํ์ผ ์ ๋ ฌ ๋ฐฉ์์ ๋ํ ์ฌ์ ์ง์์ ์์กดํ์ง ์๊ณ ๋๋ ํฐ๋ฆฌ ํธ๋ฆฌ์ ๋ชจ๋ ๋จ์ ํ
์คํธ๋ฅผ ์๋ณํด์ผ ํ๋ IDE์ ๊ฐ์ ๋๊ตฌ์์ ์ฌ์ฉ๋ฉ๋๋ค.
qlpack.yml
์ด tests
๋๋ ํฐ๋ฆฌ๋ฅผ ์ ์ธํ๋ QL ํฉ ๋ด์์ ํด๋น ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ .ql
ํ์ผ์ ํ
์คํธ๋ก ๊ฐ์ฃผ๋๋ฉฐ ๊ทธ ์ธ๋ถ์ .ql
ํ์ผ์ ๋ฌด์๋ฉ๋๋ค. tests
๋๋ ํฐ๋ฆฌ๋ฅผ ์ ์ธํ์ง ์๋ QL ํฉ์์ .ql
ํ์ผ์ ํด๋น .expected
ํ์ผ์ด ์๋ ๊ฒฝ์ฐ์๋ง ํ
์คํธ๋ก ์๋ณ๋ฉ๋๋ค.
์ผ๊ด์ฑ์ ์ํด .qlref
ํ์ผ์ด ์ค์ ๋ก ํ
์คํธ๊ฐ ์๋ ํ์ผ์ผ ์ ์๋๋ผ๋ .qlref
ํ์ผ์ .ql
ํ์ผ๊ณผ ๋์ผํ ๊ท์น์ผ๋ก ์ ํ๋ฉ๋๋ค.
์ผ๋ฐ ์ต์
-h, --help
์ด ๋์๋ง ํ ์คํธ๋ฅผ ํ์ํฉ๋๋ค.
-J=<opt>
[๊ณ ๊ธ] ๋ช ๋ น์ ์คํํ๋ JVM์ ์ต์ ์ ์ง์ ํฉ๋๋ค.
(๊ณต๋ฐฑ์ ํฌํจํ๋ ์ต์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋์ง ์์ ์ ์์ผ๋ ์ฃผ์ํ์ธ์.)
-v, --verbose
์ถ๋ ฅ๋๋ ์งํ๋ฅ ๋ฉ์์ง ์๋ฅผ ์ ์ง์ ์ผ๋ก ๋๋ฆฝ๋๋ค.
-q, --quiet
์ถ๋ ฅ๋๋ ์งํ๋ฅ ๋ฉ์์ง ์๋ฅผ ์ ์ง์ ์ผ๋ก ์ค์ ๋๋ค.
--verbosity=<level>
[๊ณ ๊ธ] ์ธ๋ถ ์ ๋ณด ํ์ ์์ค์ ์ค๋ฅ, ๊ฒฝ๊ณ , ์งํ๋ฅ , ์งํ๋ฅ +, ์งํ๋ฅ ++, ์งํ๋ฅ +++ ์ค ํ๋๋ก ๋ช
์์ ์ผ๋ก ์ค์ ํฉ๋๋ค. -v
๋ฐ -q
๋ฅผ ์ฌ์ ์ํฉ๋๋ค.
--logdir=<dir>
[๊ณ ๊ธ] ํ์์คํฌํ์ ์คํ ์ค์ธ ํ์ ๋ช ๋ น์ ์ด๋ฆ์ ํฌํจํ๋ ์์ฑ๋ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ ์ง์ ๋ ๋๋ ํฐ๋ฆฌ์ ์๋ ํ๋ ์ด์์ ํ์ผ์ ์์ธํ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
(๋ชจ๋ ๊ถํ์ ๊ฐ์ง ์ด๋ฆ์ผ๋ก ๋ก๊ทธ ํ์ผ์ ์์ฑํ๋ ค๋ฉด --log-to-stderr
์(๋ฅผ) ์ง์ ํ๊ณ stderr๋ฅผ ์ํ๋ ๋๋ก ๋ฆฌ๋๋ ์
ํฉ๋๋ค.)
--common-caches=<dir>
[๊ณ ๊ธ] ๋ค์ด๋ก๋ํ QL ํฉ ๋ฐ ์ปดํ์ผ๋ ์ฟผ๋ฆฌ ๊ณํ๊ณผ ๊ฐ์ด ์ฌ๋ฌ CLI ์คํ ๊ฐ์ ์ ์ง๋๋ ๋์คํฌ์ ์บ์๋ ๋ฐ์ดํฐ์ ์์น๋ฅผ ์ ์ดํฉ๋๋ค. ๋ช
์์ ์ผ๋ก ์ค์ ํ์ง ์์ ๊ฒฝ์ฐ ์ด ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉ์์ ํ ๋๋ ํฐ๋ฆฌ์ ์ด๋ฆ์ด ์ง์ ๋ .codeql
๋๋ ํฐ๋ฆฌ๋ก ์ค์ ๋๋ฉฐ, ์์ง ์๋ ๊ฒฝ์ฐ ๋ง๋ค์ด์ง๋๋ค.
v2.15.2
๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.