From 1616e0ef9867543ec1b8f360114d40dc3615f57c Mon Sep 17 00:00:00 2001 From: Cornelius Riemenschneider Date: Tue, 28 Jun 2022 10:28:34 +0000 Subject: [PATCH] Simplify tests for the Lua tracer FF in analyze-action. --- lib/analyze.test.js | 97 +++++++++++---------- lib/analyze.test.js.map | 2 +- src/analyze.test.ts | 188 ++++++++++++++++------------------------ 3 files changed, 124 insertions(+), 163 deletions(-) diff --git a/lib/analyze.test.js b/lib/analyze.test.js index 01871b1e04..c124138c94 100644 --- a/lib/analyze.test.js +++ b/lib/analyze.test.js @@ -231,52 +231,53 @@ const stubConfig = { debugDatabaseName: util.DEFAULT_DEBUG_DATABASE_NAME, injectedMlQueries: false, }; -(0, ava_1.default)("createdDBForScannedLanguages() Lua feature flag enabled, but old CLI", async (t) => { - const runnerConstructorStub = (0, codeql_test_1.stubToolRunnerConstructor)(); - const codeqlObject = await (0, codeql_1.getCodeQLForTesting)("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.9.0"); - const promise = (0, analyze_1.createdDBForScannedLanguages)(codeqlObject, stubConfig, (0, logging_1.getRunnerLogger)(true), (0, feature_flags_1.createFeatureFlags)([feature_flags_1.FeatureFlag.LuaTracerConfigEnabled])); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.false(runnerConstructorStub.secondCall.args[1].includes("--internal-use-lua-tracing"), "--internal-use-lua-tracing should be absent, but it is present"); - t.false(runnerConstructorStub.secondCall.args[1].includes("--no-internal-use-lua-tracing"), "--no-internal-use-lua-tracing should be absent, but it is present"); -}); -(0, ava_1.default)("createdDBForScannedLanguages() Lua feature flag disabled, with old CLI", async (t) => { - const runnerConstructorStub = (0, codeql_test_1.stubToolRunnerConstructor)(); - const codeqlObject = await (0, codeql_1.getCodeQLForTesting)("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.9.0"); - const promise = (0, analyze_1.createdDBForScannedLanguages)(codeqlObject, stubConfig, (0, logging_1.getRunnerLogger)(true), (0, feature_flags_1.createFeatureFlags)([feature_flags_1.FeatureFlag.LuaTracerConfigEnabled])); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.false(runnerConstructorStub.secondCall.args[1].includes("--internal-use-lua-tracing"), "--internal-use-lua-tracing should be absent, but it is present"); - t.false(runnerConstructorStub.secondCall.args[1].includes("--no-internal-use-lua-tracing"), "--no-internal-use-lua-tracing should be absent, but it is present"); -}); -(0, ava_1.default)("createdDBForScannedLanguages() Lua feature flag enabled, with new CLI", async (t) => { - const runnerConstructorStub = (0, codeql_test_1.stubToolRunnerConstructor)(); - const codeqlObject = await (0, codeql_1.getCodeQLForTesting)("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.10.0"); - const promise = (0, analyze_1.createdDBForScannedLanguages)(codeqlObject, stubConfig, (0, logging_1.getRunnerLogger)(true), (0, feature_flags_1.createFeatureFlags)([feature_flags_1.FeatureFlag.LuaTracerConfigEnabled])); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.true(runnerConstructorStub.secondCall.args[1].includes("--internal-use-lua-tracing"), "--internal-use-lua-tracing should be present, but is not"); - t.false(runnerConstructorStub.secondCall.args[1].includes("--no-internal-use-lua-tracing"), "--no-internal-use-lua-tracing should be absent, but it is present"); -}); -(0, ava_1.default)("createdDBForScannedLanguages() Lua feature flag disabled, with new CLI", async (t) => { - const runnerConstructorStub = (0, codeql_test_1.stubToolRunnerConstructor)(); - const codeqlObject = await (0, codeql_1.getCodeQLForTesting)("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.10.0"); - const promise = (0, analyze_1.createdDBForScannedLanguages)(codeqlObject, stubConfig, (0, logging_1.getRunnerLogger)(true), (0, feature_flags_1.createFeatureFlags)([])); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.false(runnerConstructorStub.secondCall.args[1].includes("--internal-use-lua-tracing"), "--internal-use-lua-tracing should be absent, but is present"); - t.true(runnerConstructorStub.secondCall.args[1].includes("--no-internal-use-lua-tracing"), "--no-internal-use-lua-tracing should be present, but is absent"); -}); +for (const options of [ + { + name: "Lua feature flag enabled, but old CLI", + version: "2.9.0", + featureFlags: [feature_flags_1.FeatureFlag.LuaTracerConfigEnabled], + yesFlagSet: false, + noFlagSet: false, + }, + { + name: "Lua feature flag disabled, with old CLI", + version: "2.9.0", + featureFlags: [], + yesFlagSet: false, + noFlagSet: false, + }, + { + name: "Lua feature flag enabled, with new CLI", + version: "2.10.0", + featureFlags: [feature_flags_1.FeatureFlag.LuaTracerConfigEnabled], + yesFlagSet: true, + noFlagSet: false, + }, + { + name: "Lua feature flag disabled, with new CLI", + version: "2.10.0", + featureFlags: [], + yesFlagSet: false, + noFlagSet: true, + }, +]) { + (0, ava_1.default)(`createdDBForScannedLanguages() ${options.name}`, async (t) => { + const runnerConstructorStub = (0, codeql_test_1.stubToolRunnerConstructor)(); + const codeqlObject = await (0, codeql_1.getCodeQLForTesting)("codeql/for-testing"); + sinon.stub(codeqlObject, "getVersion").resolves(options.version); + const promise = (0, analyze_1.createdDBForScannedLanguages)(codeqlObject, stubConfig, (0, logging_1.getRunnerLogger)(true), (0, feature_flags_1.createFeatureFlags)(options.featureFlags)); + // call listener on `codeql resolve extractor` + const mockToolRunner = runnerConstructorStub.getCall(0); + mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); + await promise; + if (options.yesFlagSet) + t.true(runnerConstructorStub.secondCall.args[1].includes("--internal-use-lua-tracing"), "--internal-use-lua-tracing should be present, but it is absent"); + else + t.false(runnerConstructorStub.secondCall.args[1].includes("--internal-use-lua-tracing"), "--internal-use-lua-tracing should be absent, but it is present"); + if (options.noFlagSet) + t.true(runnerConstructorStub.secondCall.args[1].includes("--no-internal-use-lua-tracing"), "--no-internal-use-lua-tracing should be present, but it is absent"); + else + t.false(runnerConstructorStub.secondCall.args[1].includes("--no-internal-use-lua-tracing"), "--no-internal-use-lua-tracing should be absent, but it is present"); + }); +} //# sourceMappingURL=analyze.test.js.map \ No newline at end of file diff --git a/lib/analyze.test.js.map b/lib/analyze.test.js.map index 5cf2405624..f52ab899b4 100644 --- a/lib/analyze.test.js.map +++ b/lib/analyze.test.js.map @@ -1 +1 @@ -{"version":3,"file":"analyze.test.js","sourceRoot":"","sources":["../src/analyze.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAE7B,8CAAuB;AACvB,8CAAgC;AAChC,6CAA+B;AAE/B,uCAAqE;AACrE,qCAA0D;AAC1D,+CAA0D;AAE1D,mDAAqC;AACrC,mDAAkE;AAClE,2CAAuC;AACvC,uCAA4C;AAC5C,mDAA+D;AAC/D,6CAA+B;AAE/B,IAAA,0BAAU,EAAC,aAAI,CAAC,CAAC;AAEjB,yEAAyE;AACzE,wEAAwE;AACxE,oDAAoD;AACpD,IAAA,aAAI,EAAC,8CAA8C,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC/D,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,oBAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;QACtE,+CAA+C;QAC/C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACxD,IAAI,eAAe,GAA8B,EAAE,CAAC;IACpD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC5C,IAAA,gCAAgB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEjC,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG;YACZ,CAAC,oBAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC;YAC7B,CAAC,oBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;SAC/B,CAAC;QAEF,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAQ,CAAC,EAAE;YAC9C,IAAA,kBAAS,EAAC;gBACR,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACzC,kBAAkB,EAAE,KAAK,EACvB,GAAW,EACX,UAA8B,EAC9B,EAAE;oBACF,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnC,CAAC;gBACD,wBAAwB,EAAE,KAAK,EAC7B,GAAW,EACX,WAAqB,EACrB,SAAiB,EACjB,EAAE;oBACF,EAAE,CAAC,aAAa,CACd,SAAS,EACT,IAAI,CAAC,SAAS,CAAC;wBACb,IAAI,EAAE;4BACJ,+EAA+E;4BAC/E;gCACE,IAAI,EAAE;oCACJ,UAAU,EAAE;wCACV;4CACE,KAAK,EAAE;gDACL;oDACE,UAAU,EAAE;wDACV,IAAI,EAAE,CAAC,eAAe,CAAC;qDACxB;iDACF;6CACF;yCACF;qCACF;iCACF;gCACD,UAAU,EAAE;oCACV,aAAa,EAAE;wCACb;4CACE,IAAI,EAAE;gDACJ,KAAK,EAAE,CAAC;gDACR,aAAa,EAAE;oDACb,KAAK,EAAE,CAAC;iDACT;6CACF;4CACD,KAAK,EAAE,GAAG;yCACX;qCACF;iCACF;6BACF;4BACD,EAAE;yBACH;qBACF,CAAC,CACH,CAAC;oBACF,OAAO,EAAE,CAAC;gBACZ,CAAC;aACF,CAAC,CAAC;YAEH,eAAe,GAAG,EAAE,CAAC;YACrB,MAAM,MAAM,GAAW;gBACrB,SAAS,EAAE,CAAC,QAAQ,CAAC;gBACrB,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,EAAE;gBACf,KAAK,EAAE,EAAE;gBACT,iBAAiB,EAAE,EAAE;gBACrB,OAAO,EAAE,MAAM;gBACf,YAAY,EAAE,MAAM;gBACpB,SAAS,EAAE,EAAE;gBACb,aAAa,EAAE;oBACb,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;iBACV;gBACvB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,CAAC;gBACpD,KAAK;gBACL,SAAS,EAAE,KAAK;gBAChB,iBAAiB,EAAE,IAAI,CAAC,2BAA2B;gBACnD,iBAAiB,EAAE,IAAI,CAAC,2BAA2B;gBACnD,iBAAiB,EAAE,KAAK;aACzB,CAAC;YACF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;gBACzD,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBACzB,OAAO,EAAE,CAAC,QAAQ,CAAC;gBACnB,MAAM,EAAE,EAAE;aACX,CAAC;YACF,MAAM,mBAAmB,GAAG,MAAM,IAAA,oBAAU,EAC1C,MAAM,EACN,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACT,MAAM,EACN,IAAA,yBAAe,EAAC,IAAI,CAAC,CACtB,CAAC;YACF,MAAM,QAAQ,GAAG,QAAQ,IAAI,KAAK,CAAC;YACnC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;YACjE,IAAI,QAAQ,EAAE;gBACZ,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrE,CAAC,CAAC,SAAS,CACT,gBAAgB,CAAC,CAAC,CAAC,EACnB,2BAA2B,QAAQ,cAAc,CAClD,CAAC;gBACF,CAAC,CAAC,SAAS,CACT,gBAAgB,CAAC,CAAC,CAAC,EACnB,0BAA0B,QAAQ,cAAc,CACjD,CAAC;gBACF,CAAC,CAAC,SAAS,CACT,gBAAgB,CAAC,CAAC,CAAC,EACnB,qBAAqB,QAAQ,cAAc,CAC5C,CAAC;aACH;iBAAM;gBACL,CAAC,CAAC,SAAS,CACT,gBAAgB,CAAC,CAAC,CAAC,EACnB,2BAA2B,QAAQ,cAAc,CAClD,CAAC;gBACF,CAAC,CAAC,SAAS,CACT,gBAAgB,CAAC,CAAC,CAAC,EACnB,qBAAqB,QAAQ,cAAc,CAC5C,CAAC;aACH;YAED,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBACzB,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE;oBACN;wBACE,OAAO,EAAE,CAAC,QAAQ,CAAC;wBACnB,UAAU,EAAE,IAAI;qBACjB;oBACD;wBACE,OAAO,EAAE,CAAC,QAAQ,CAAC;wBACnB,UAAU,EAAE,IAAI;qBACjB;iBACF;aACF,CAAC;YACF,MAAM,kBAAkB,GAAG,MAAM,IAAA,oBAAU,EACzC,MAAM,EACN,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACT,MAAM,EACN,IAAA,yBAAe,EAAC,IAAI,CAAC,CACtB,CAAC;YACF,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC,IAAI,CACJ,0BAA0B,QAAQ,cAAc,IAAI,kBAAkB,CACvE,CAAC;YACF,MAAM,uBAAuB,GAAG,QAAQ;gBACtC,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC;gBAC/C,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC,CAAC,SAAS,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;YACtD,CAAC,CAAC,IAAI,CAAC,qBAAqB,QAAQ,cAAc,IAAI,kBAAkB,CAAC,CAAC;SAC3E;QAED,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,SAAS,gBAAgB,CAAC,MAAc;QACtC,gDAAgD;QAChD,MAAM,CAAC,IAAI,CAAC,oBAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,sBAAsB,CAAC,QAAgB,EAAE,SAAiB;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,EAAE;YAClD;gBACE,IAAI,EAAE;oBACJ,KAAK,EAAE,CAAC;oBACR,aAAa,EAAE;wBACb,KAAK,EAAE,CAAC;qBACT;iBACF;gBACD,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,SAAS;aACpB;SACF,CAAC,CAAC;QACH,sDAAsD;QACtD,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS,iBAAiB,CAAC,MAAc;QACvC,MAAM,UAAU,GAAG;YACjB;gBACE,KAAK,EAAE,QAAQ;aAChB;SACF,CAAC;QACF,MAAM,WAAW,GAAG;YAClB;gBACE,KAAK,EAAE,QAAQ;aAChB;SACF,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAQ,CAAC,EAAE;YAC1C,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,sBAAsB,CAAC,EAAE,UAAU,CAAC,CAAC;YACrE,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,uBAAuB,CAAC,EAAE,UAAU,CAAC,CAAC;YACtE,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,uBAAuB,CAAC,EAAE,WAAW,CAAC,CAAC;SACxE;QAED,SAAS,YAAY,CAAC,IAAY;YAChC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CACvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAC3C,MAAM,CACP,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAEf,OAAO,IAAI,CAAC,IAAI,CACd,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAW;IACzB,SAAS,EAAE,CAAC,oBAAQ,CAAC,GAAG,EAAE,oBAAQ,CAAC,EAAE,CAAC;IACtC,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,EAAE;IACf,KAAK,EAAE,EAAE;IACT,iBAAiB,EAAE,EAAE;IACrB,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,aAAa,EAAE;QACb,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;KACV;IACvB,UAAU,EAAE,EAAE;IACd,KAAK,EAAE,EAAE;IACT,SAAS,EAAE,KAAK;IAChB,iBAAiB,EAAE,IAAI,CAAC,2BAA2B;IACnD,iBAAiB,EAAE,IAAI,CAAC,2BAA2B;IACnD,iBAAiB,EAAE,KAAK;CACzB,CAAC;AAEF,IAAA,aAAI,EAAC,sEAAsE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACvF,MAAM,qBAAqB,GAAG,IAAA,uCAAyB,GAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,MAAM,IAAA,4BAAmB,EAAC,oBAAoB,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,IAAA,sCAA4B,EAC1C,YAAY,EACZ,UAAU,EACV,IAAA,yBAAe,EAAC,IAAI,CAAC,EACrB,IAAA,kCAAkB,EAAC,CAAC,2BAAW,CAAC,sBAAsB,CAAC,CAAC,CACzD,CAAC;IACF,8CAA8C;IAC9C,MAAM,cAAc,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAChE,MAAM,OAAO,CAAC;IACd,CAAC,CAAC,KAAK,CACL,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC/C,4BAA4B,CAC7B,EACD,gEAAgE,CACjE,CAAC;IACF,CAAC,CAAC,KAAK,CACL,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC/C,+BAA+B,CAChC,EACD,mEAAmE,CACpE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,wEAAwE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACzF,MAAM,qBAAqB,GAAG,IAAA,uCAAyB,GAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,MAAM,IAAA,4BAAmB,EAAC,oBAAoB,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,IAAA,sCAA4B,EAC1C,YAAY,EACZ,UAAU,EACV,IAAA,yBAAe,EAAC,IAAI,CAAC,EACrB,IAAA,kCAAkB,EAAC,CAAC,2BAAW,CAAC,sBAAsB,CAAC,CAAC,CACzD,CAAC;IACF,8CAA8C;IAC9C,MAAM,cAAc,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAChE,MAAM,OAAO,CAAC;IACd,CAAC,CAAC,KAAK,CACL,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC/C,4BAA4B,CAC7B,EACD,gEAAgE,CACjE,CAAC;IACF,CAAC,CAAC,KAAK,CACL,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC/C,+BAA+B,CAChC,EACD,mEAAmE,CACpE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uEAAuE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxF,MAAM,qBAAqB,GAAG,IAAA,uCAAyB,GAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,MAAM,IAAA,4BAAmB,EAAC,oBAAoB,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,IAAA,sCAA4B,EAC1C,YAAY,EACZ,UAAU,EACV,IAAA,yBAAe,EAAC,IAAI,CAAC,EACrB,IAAA,kCAAkB,EAAC,CAAC,2BAAW,CAAC,sBAAsB,CAAC,CAAC,CACzD,CAAC;IACF,8CAA8C;IAC9C,MAAM,cAAc,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAChE,MAAM,OAAO,CAAC;IACd,CAAC,CAAC,IAAI,CACJ,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC/C,4BAA4B,CAC7B,EACD,0DAA0D,CAC3D,CAAC;IACF,CAAC,CAAC,KAAK,CACL,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC/C,+BAA+B,CAChC,EACD,mEAAmE,CACpE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,wEAAwE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACzF,MAAM,qBAAqB,GAAG,IAAA,uCAAyB,GAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,MAAM,IAAA,4BAAmB,EAAC,oBAAoB,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE1D,MAAM,OAAO,GAAG,IAAA,sCAA4B,EAC1C,YAAY,EACZ,UAAU,EACV,IAAA,yBAAe,EAAC,IAAI,CAAC,EACrB,IAAA,kCAAkB,EAAC,EAAE,CAAC,CACvB,CAAC;IACF,8CAA8C;IAC9C,MAAM,cAAc,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAChE,MAAM,OAAO,CAAC;IACd,CAAC,CAAC,KAAK,CACL,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC/C,4BAA4B,CAC7B,EACD,6DAA6D,CAC9D,CAAC;IACF,CAAC,CAAC,IAAI,CACJ,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC/C,+BAA+B,CAChC,EACD,gEAAgE,CACjE,CAAC;AACJ,CAAC,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"analyze.test.js","sourceRoot":"","sources":["../src/analyze.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/analyze.test.ts b/src/analyze.test.ts index 84dd91d32e..1b671caa73 100644 --- a/src/analyze.test.ts +++ b/src/analyze.test.ts @@ -272,118 +272,78 @@ const stubConfig: Config = { injectedMlQueries: false, }; -test("createdDBForScannedLanguages() Lua feature flag enabled, but old CLI", async (t) => { - const runnerConstructorStub = stubToolRunnerConstructor(); - const codeqlObject = await getCodeQLForTesting("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.9.0"); +for (const options of [ + { + name: "Lua feature flag enabled, but old CLI", + version: "2.9.0", + featureFlags: [FeatureFlag.LuaTracerConfigEnabled], + yesFlagSet: false, + noFlagSet: false, + }, + { + name: "Lua feature flag disabled, with old CLI", + version: "2.9.0", + featureFlags: [], + yesFlagSet: false, + noFlagSet: false, + }, + { + name: "Lua feature flag enabled, with new CLI", + version: "2.10.0", + featureFlags: [FeatureFlag.LuaTracerConfigEnabled], + yesFlagSet: true, + noFlagSet: false, + }, + { + name: "Lua feature flag disabled, with new CLI", + version: "2.10.0", + featureFlags: [], + yesFlagSet: false, + noFlagSet: true, + }, +]) { + test(`createdDBForScannedLanguages() ${options.name}`, async (t) => { + const runnerConstructorStub = stubToolRunnerConstructor(); + const codeqlObject = await getCodeQLForTesting("codeql/for-testing"); + sinon.stub(codeqlObject, "getVersion").resolves(options.version); - const promise = createdDBForScannedLanguages( - codeqlObject, - stubConfig, - getRunnerLogger(true), - createFeatureFlags([FeatureFlag.LuaTracerConfigEnabled]) - ); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.false( - runnerConstructorStub.secondCall.args[1].includes( - "--internal-use-lua-tracing" - ), - "--internal-use-lua-tracing should be absent, but it is present" - ); - t.false( - runnerConstructorStub.secondCall.args[1].includes( - "--no-internal-use-lua-tracing" - ), - "--no-internal-use-lua-tracing should be absent, but it is present" - ); -}); - -test("createdDBForScannedLanguages() Lua feature flag disabled, with old CLI", async (t) => { - const runnerConstructorStub = stubToolRunnerConstructor(); - const codeqlObject = await getCodeQLForTesting("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.9.0"); - - const promise = createdDBForScannedLanguages( - codeqlObject, - stubConfig, - getRunnerLogger(true), - createFeatureFlags([FeatureFlag.LuaTracerConfigEnabled]) - ); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.false( - runnerConstructorStub.secondCall.args[1].includes( - "--internal-use-lua-tracing" - ), - "--internal-use-lua-tracing should be absent, but it is present" - ); - t.false( - runnerConstructorStub.secondCall.args[1].includes( - "--no-internal-use-lua-tracing" - ), - "--no-internal-use-lua-tracing should be absent, but it is present" - ); -}); - -test("createdDBForScannedLanguages() Lua feature flag enabled, with new CLI", async (t) => { - const runnerConstructorStub = stubToolRunnerConstructor(); - const codeqlObject = await getCodeQLForTesting("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.10.0"); - - const promise = createdDBForScannedLanguages( - codeqlObject, - stubConfig, - getRunnerLogger(true), - createFeatureFlags([FeatureFlag.LuaTracerConfigEnabled]) - ); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.true( - runnerConstructorStub.secondCall.args[1].includes( - "--internal-use-lua-tracing" - ), - "--internal-use-lua-tracing should be present, but is not" - ); - t.false( - runnerConstructorStub.secondCall.args[1].includes( - "--no-internal-use-lua-tracing" - ), - "--no-internal-use-lua-tracing should be absent, but it is present" - ); -}); - -test("createdDBForScannedLanguages() Lua feature flag disabled, with new CLI", async (t) => { - const runnerConstructorStub = stubToolRunnerConstructor(); - const codeqlObject = await getCodeQLForTesting("codeql/for-testing"); - sinon.stub(codeqlObject, "getVersion").resolves("2.10.0"); - - const promise = createdDBForScannedLanguages( - codeqlObject, - stubConfig, - getRunnerLogger(true), - createFeatureFlags([]) - ); - // call listener on `codeql resolve extractor` - const mockToolRunner = runnerConstructorStub.getCall(0); - mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); - await promise; - t.false( - runnerConstructorStub.secondCall.args[1].includes( - "--internal-use-lua-tracing" - ), - "--internal-use-lua-tracing should be absent, but is present" - ); - t.true( - runnerConstructorStub.secondCall.args[1].includes( - "--no-internal-use-lua-tracing" - ), - "--no-internal-use-lua-tracing should be present, but is absent" - ); -}); + const promise = createdDBForScannedLanguages( + codeqlObject, + stubConfig, + getRunnerLogger(true), + createFeatureFlags(options.featureFlags) + ); + // call listener on `codeql resolve extractor` + const mockToolRunner = runnerConstructorStub.getCall(0); + mockToolRunner.args[2].listeners.stdout('"/path/to/extractor"'); + await promise; + if (options.yesFlagSet) + t.true( + runnerConstructorStub.secondCall.args[1].includes( + "--internal-use-lua-tracing" + ), + "--internal-use-lua-tracing should be present, but it is absent" + ); + else + t.false( + runnerConstructorStub.secondCall.args[1].includes( + "--internal-use-lua-tracing" + ), + "--internal-use-lua-tracing should be absent, but it is present" + ); + if (options.noFlagSet) + t.true( + runnerConstructorStub.secondCall.args[1].includes( + "--no-internal-use-lua-tracing" + ), + "--no-internal-use-lua-tracing should be present, but it is absent" + ); + else + t.false( + runnerConstructorStub.secondCall.args[1].includes( + "--no-internal-use-lua-tracing" + ), + "--no-internal-use-lua-tracing should be absent, but it is present" + ); + }); +}