make tests clearer
This commit is contained in:
parent
407ef0ac11
commit
82fb31ed5e
9 changed files with 84 additions and 76 deletions
58
lib/tracer-config.test.js
generated
58
lib/tracer-config.test.js
generated
|
|
@ -32,7 +32,7 @@ function getTestConfig(tmpDir) {
|
|||
};
|
||||
}
|
||||
// A very minimal setup
|
||||
ava_1.default('tracerConfig - minimal', async (t) => {
|
||||
ava_1.default('getTracerConfigForLanguage - minimal setup', async (t) => {
|
||||
await util.withTmpDir(async (tmpDir) => {
|
||||
const config = getTestConfig(tmpDir);
|
||||
const codeQL = codeql_1.setCodeQL({
|
||||
|
|
@ -43,14 +43,24 @@ ava_1.default('tracerConfig - minimal', async (t) => {
|
|||
};
|
||||
},
|
||||
});
|
||||
const result = await tracer_config_1.tracerConfig(codeQL, config, languages_1.Language.javascript);
|
||||
const result = await tracer_config_1.getTracerConfigForLanguage(codeQL, config, languages_1.Language.javascript);
|
||||
t.deepEqual(result, { spec: 'abc', env: { 'foo': 'bar' } });
|
||||
});
|
||||
});
|
||||
// Existing vars should not be overwritten, unless they are critical or prefixed with CODEQL_
|
||||
ava_1.default('tracerConfig - existing / critical vars', async (t) => {
|
||||
ava_1.default('getTracerConfigForLanguage - existing / critical vars', async (t) => {
|
||||
await util.withTmpDir(async (tmpDir) => {
|
||||
const config = getTestConfig(tmpDir);
|
||||
// Set up some variables in the environment
|
||||
process.env['foo'] = 'abc';
|
||||
process.env['SEMMLE_PRELOAD_libtrace'] = 'abc';
|
||||
process.env['SEMMLE_RUNNER'] = 'abc';
|
||||
process.env['SEMMLE_COPY_EXECUTABLES_ROOT'] = 'abc';
|
||||
process.env['SEMMLE_DEPTRACE_SOCKET'] = 'abc';
|
||||
process.env['SEMMLE_JAVA_TOOL_OPTIONS'] = 'abc';
|
||||
process.env['SEMMLE_DEPTRACE_SOCKET'] = 'abc';
|
||||
process.env['CODEQL_VAR'] = 'abc';
|
||||
// Now CodeQL returns all these variables, and one more, with different values
|
||||
const codeQL = codeql_1.setCodeQL({
|
||||
getTracerEnv: async function () {
|
||||
return {
|
||||
|
|
@ -66,18 +76,12 @@ ava_1.default('tracerConfig - existing / critical vars', async (t) => {
|
|||
};
|
||||
},
|
||||
});
|
||||
process.env['foo'] = 'abc';
|
||||
process.env['SEMMLE_PRELOAD_libtrace'] = 'abc';
|
||||
process.env['SEMMLE_RUNNER'] = 'abc';
|
||||
process.env['SEMMLE_COPY_EXECUTABLES_ROOT'] = 'abc';
|
||||
process.env['SEMMLE_DEPTRACE_SOCKET'] = 'abc';
|
||||
process.env['SEMMLE_JAVA_TOOL_OPTIONS'] = 'abc';
|
||||
process.env['SEMMLE_DEPTRACE_SOCKET'] = 'abc';
|
||||
process.env['CODEQL_VAR'] = 'abc';
|
||||
const result = await tracer_config_1.tracerConfig(codeQL, config, languages_1.Language.javascript);
|
||||
const result = await tracer_config_1.getTracerConfigForLanguage(codeQL, config, languages_1.Language.javascript);
|
||||
t.deepEqual(result, {
|
||||
spec: 'abc',
|
||||
env: {
|
||||
// Should contain all variables except 'foo', because that already existed in the
|
||||
// environment with a different value, and is not deemed a "critical" variable.
|
||||
'baz': 'qux',
|
||||
'SEMMLE_PRELOAD_libtrace': 'SEMMLE_PRELOAD_libtrace',
|
||||
'SEMMLE_RUNNER': 'SEMMLE_RUNNER',
|
||||
|
|
@ -89,7 +93,7 @@ ava_1.default('tracerConfig - existing / critical vars', async (t) => {
|
|||
});
|
||||
});
|
||||
});
|
||||
ava_1.default('concatTracerConfigs - minimal', async (t) => {
|
||||
ava_1.default('concatTracerConfigs - minimal configs correctly combined', async (t) => {
|
||||
await util.withTmpDir(async (tmpDir) => {
|
||||
const config = getTestConfig(tmpDir);
|
||||
const spec1 = path.join(tmpDir, 'spec1');
|
||||
|
|
@ -144,8 +148,7 @@ ava_1.default('concatTracerConfigs - conflicting env vars', async (t) => {
|
|||
t.deepEqual(e.message, 'Incompatible values in environment parameter b: b and c');
|
||||
});
|
||||
});
|
||||
// If cpp is present then it's spec lines always come at the end
|
||||
ava_1.default('concatTracerConfigs - cpp comes last', async (t) => {
|
||||
ava_1.default('concatTracerConfigs - cpp spec lines come last if present', async (t) => {
|
||||
await util.withTmpDir(async (tmpDir) => {
|
||||
const config = getTestConfig(tmpDir);
|
||||
const spec1 = path.join(tmpDir, 'spec1');
|
||||
|
|
@ -178,7 +181,7 @@ ava_1.default('concatTracerConfigs - cpp comes last', async (t) => {
|
|||
t.deepEqual(fs.readFileSync(result.spec, 'utf8'), path.join(tmpDir, 'compound-build-tracer.log') + '\n3\nghi\nabc\ndef');
|
||||
});
|
||||
});
|
||||
ava_1.default('concatTracerConfigs - SEMMLE_COPY_EXECUTABLES_ROOT', async (t) => {
|
||||
ava_1.default('concatTracerConfigs - SEMMLE_COPY_EXECUTABLES_ROOT is updated to point to compound spec', async (t) => {
|
||||
await util.withTmpDir(async (tmpDir) => {
|
||||
const config = getTestConfig(tmpDir);
|
||||
const spec = path.join(tmpDir, 'spec');
|
||||
|
|
@ -194,7 +197,7 @@ ava_1.default('concatTracerConfigs - SEMMLE_COPY_EXECUTABLES_ROOT', async (t) =>
|
|||
});
|
||||
});
|
||||
});
|
||||
ava_1.default('concatTracerConfigs - compound environment file', async (t) => {
|
||||
ava_1.default('concatTracerConfigs - compound environment file is created correctly', async (t) => {
|
||||
await util.withTmpDir(async (tmpDir) => {
|
||||
const config = getTestConfig(tmpDir);
|
||||
const spec1 = path.join(tmpDir, 'spec1');
|
||||
|
|
@ -217,15 +220,16 @@ ava_1.default('concatTracerConfigs - compound environment file', async (t) => {
|
|||
const envPath = result.spec + '.environment';
|
||||
t.true(fs.existsSync(envPath));
|
||||
const buffer = fs.readFileSync(envPath);
|
||||
t.deepEqual(28, buffer.length);
|
||||
t.deepEqual(2, buffer.readInt32LE(0));
|
||||
t.deepEqual(4, buffer.readInt32LE(4));
|
||||
t.deepEqual('a=a\0', buffer.toString('utf8', 8, 12));
|
||||
t.deepEqual(12, buffer.readInt32LE(12));
|
||||
t.deepEqual('foo=bar_baz\0', buffer.toString('utf8', 16, 28));
|
||||
// Contents is binary data
|
||||
t.deepEqual(buffer.length, 28);
|
||||
t.deepEqual(buffer.readInt32LE(0), 2); // number of env vars
|
||||
t.deepEqual(buffer.readInt32LE(4), 4); // length of env var definition
|
||||
t.deepEqual(buffer.toString('utf8', 8, 12), 'a=a\0'); // [key]=[value]\0
|
||||
t.deepEqual(buffer.readInt32LE(12), 12); // length of env var definition
|
||||
t.deepEqual(buffer.toString('utf8', 16, 28), 'foo=bar_baz\0'); // [key]=[value]\0
|
||||
});
|
||||
});
|
||||
ava_1.default('getTracerConfig - no traced languages', async (t) => {
|
||||
ava_1.default('getCombinedTracerConfig - return undefined when no languages are traced languages', async (t) => {
|
||||
await util.withTmpDir(async (tmpDir) => {
|
||||
const config = getTestConfig(tmpDir);
|
||||
// No traced languages
|
||||
|
|
@ -238,10 +242,10 @@ ava_1.default('getTracerConfig - no traced languages', async (t) => {
|
|||
};
|
||||
},
|
||||
});
|
||||
t.deepEqual(undefined, await tracer_config_1.getTracerConfig(config, codeQL));
|
||||
t.deepEqual(await tracer_config_1.getCombinedTracerConfig(config, codeQL), undefined);
|
||||
});
|
||||
});
|
||||
ava_1.default('getTracerConfig - full', async (t) => {
|
||||
ava_1.default('getCombinedTracerConfig - valid spec file', async (t) => {
|
||||
await util.withTmpDir(async (tmpDir) => {
|
||||
const config = getTestConfig(tmpDir);
|
||||
const spec = path.join(tmpDir, 'spec');
|
||||
|
|
@ -254,7 +258,7 @@ ava_1.default('getTracerConfig - full', async (t) => {
|
|||
};
|
||||
},
|
||||
});
|
||||
const result = await tracer_config_1.getTracerConfig(config, codeQL);
|
||||
const result = await tracer_config_1.getCombinedTracerConfig(config, codeQL);
|
||||
t.deepEqual(result, {
|
||||
spec: path.join(tmpDir, 'compound-spec'),
|
||||
env: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue