mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-11-12 08:41:34 +00:00
test: consolidate assignment-chain integration cases (#3790)
* test: consolidate assignment-chain cases * test: allow Windows recovery probes to finish Each Windows recovery case invokes analysis five times. Two CI attempts hit the 120-second limit in different cases before native work finished. Allow 240 seconds on Windows while preserving every assertion. --------- Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
This commit is contained in:
parent
1f08ca38f8
commit
3e6484af6c
7 changed files with 4 additions and 129 deletions
|
|
@ -937,18 +937,6 @@ describe('C# assignment chain propagation', () => {
|
|||
expect(saveMethods.length).toBe(2);
|
||||
});
|
||||
|
||||
it('resolves alias.Save() to User#Save via assignment chain', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// Positive: alias.Save() must resolve to User#Save
|
||||
const userSave = calls.find(
|
||||
(c) =>
|
||||
c.target === 'Save' &&
|
||||
c.source === 'ProcessEntities' &&
|
||||
c.targetFilePath.includes('User.cs'),
|
||||
);
|
||||
expect(userSave).toBeDefined();
|
||||
});
|
||||
|
||||
it('alias.Save() does NOT resolve to Repo#Save', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// Negative: alias comes from User, so only one edge to User.cs
|
||||
|
|
@ -961,18 +949,6 @@ describe('C# assignment chain propagation', () => {
|
|||
expect(wrongCall.length).toBe(1);
|
||||
});
|
||||
|
||||
it('resolves rAlias.Save() to Repo#Save via assignment chain', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// Positive: rAlias.Save() must resolve to Repo#Save
|
||||
const repoSave = calls.find(
|
||||
(c) =>
|
||||
c.target === 'Save' &&
|
||||
c.source === 'ProcessEntities' &&
|
||||
c.targetFilePath.includes('Repo.cs'),
|
||||
);
|
||||
expect(repoSave).toBeDefined();
|
||||
});
|
||||
|
||||
it('each alias resolves to its own class, not the other', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
const userSave = calls.find(
|
||||
|
|
|
|||
|
|
@ -980,18 +980,6 @@ describe('Go assignment chain propagation', () => {
|
|||
expect(saveMethods.length).toBe(2);
|
||||
});
|
||||
|
||||
it('resolves alias.Save() to User#Save via assignment chain', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// Positive: alias.Save() must resolve to User#Save
|
||||
const userSave = calls.find(
|
||||
(c) =>
|
||||
c.target === 'Save' &&
|
||||
c.source === 'processEntities' &&
|
||||
c.targetFilePath.includes('user.go'),
|
||||
);
|
||||
expect(userSave).toBeDefined();
|
||||
});
|
||||
|
||||
it('alias.Save() does NOT resolve to Repo#Save', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// Negative: alias comes from User, so only one edge to user.go
|
||||
|
|
@ -1004,18 +992,6 @@ describe('Go assignment chain propagation', () => {
|
|||
expect(wrongCall.length).toBe(1);
|
||||
});
|
||||
|
||||
it('resolves rAlias.Save() to Repo#Save via assignment chain', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// Positive: rAlias.Save() must resolve to Repo#Save
|
||||
const repoSave = calls.find(
|
||||
(c) =>
|
||||
c.target === 'Save' &&
|
||||
c.source === 'processEntities' &&
|
||||
c.targetFilePath.includes('repo.go'),
|
||||
);
|
||||
expect(repoSave).toBeDefined();
|
||||
});
|
||||
|
||||
it('each alias resolves to its own struct, not the other', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
const userSave = calls.find(
|
||||
|
|
|
|||
|
|
@ -1058,18 +1058,6 @@ describe('Java assignment chain propagation', () => {
|
|||
expect(saveMethods.length).toBe(2);
|
||||
});
|
||||
|
||||
it('resolves alias.save() to User#save via assignment chain', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// Positive: alias.save() must resolve to User#save
|
||||
const userSave = calls.find(
|
||||
(c) =>
|
||||
c.target === 'save' &&
|
||||
c.source === 'processEntities' &&
|
||||
c.targetFilePath.includes('User.java'),
|
||||
);
|
||||
expect(userSave).toBeDefined();
|
||||
});
|
||||
|
||||
it('alias.save() does NOT resolve to Repo#save', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// Negative: alias comes from User, so only one edge to User.java
|
||||
|
|
@ -1082,18 +1070,6 @@ describe('Java assignment chain propagation', () => {
|
|||
expect(wrongCall.length).toBe(1);
|
||||
});
|
||||
|
||||
it('resolves rAlias.save() to Repo#save via assignment chain', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// Positive: rAlias.save() must resolve to Repo#save
|
||||
const repoSave = calls.find(
|
||||
(c) =>
|
||||
c.target === 'save' &&
|
||||
c.source === 'processEntities' &&
|
||||
c.targetFilePath.includes('Repo.java'),
|
||||
);
|
||||
expect(repoSave).toBeDefined();
|
||||
});
|
||||
|
||||
it('each alias resolves to its own class, not the other', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
const userSave = calls.find(
|
||||
|
|
|
|||
|
|
@ -831,28 +831,6 @@ describe('Kotlin assignment chain propagation', () => {
|
|||
expect(saveMethods.length).toBe(2);
|
||||
});
|
||||
|
||||
it('resolves alias.save() to User#save via assignment chain', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
const userSave = calls.find(
|
||||
(c) =>
|
||||
c.target === 'save' &&
|
||||
c.source === 'processEntities' &&
|
||||
c.targetFilePath.includes('User.kt'),
|
||||
);
|
||||
expect(userSave).toBeDefined();
|
||||
});
|
||||
|
||||
it('resolves rAlias.save() to Repo#save via assignment chain', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
const repoSave = calls.find(
|
||||
(c) =>
|
||||
c.target === 'save' &&
|
||||
c.source === 'processEntities' &&
|
||||
c.targetFilePath.includes('Repo.kt'),
|
||||
);
|
||||
expect(repoSave).toBeDefined();
|
||||
});
|
||||
|
||||
it('alias.save() does NOT resolve to Repo#save', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// There should be exactly one save() call targeting User.kt from processEntities
|
||||
|
|
|
|||
|
|
@ -1116,22 +1116,6 @@ describe('PHP assignment chain propagation', () => {
|
|||
expect(saveMethods.length).toBe(2);
|
||||
});
|
||||
|
||||
it('resolves alias->save() to User#save via assignment chain', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
const userSave = calls.find(
|
||||
(c) => c.target === 'save' && c.source === 'process' && c.targetFilePath.includes('User.php'),
|
||||
);
|
||||
expect(userSave).toBeDefined();
|
||||
});
|
||||
|
||||
it('resolves rAlias->save() to Repo#save via assignment chain', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
const repoSave = calls.find(
|
||||
(c) => c.target === 'save' && c.source === 'process' && c.targetFilePath.includes('Repo.php'),
|
||||
);
|
||||
expect(repoSave).toBeDefined();
|
||||
});
|
||||
|
||||
it('alias->save() does NOT resolve to Repo#save', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// There should be exactly one save() call targeting User.php from process
|
||||
|
|
|
|||
|
|
@ -2882,15 +2882,6 @@ describe('Python assignment chain propagation', () => {
|
|||
expect(saveFns.length).toBe(2);
|
||||
});
|
||||
|
||||
it('resolves alias.save() to User#save via assignment chain', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// Positive: alias.save() must resolve to User#save
|
||||
const userSave = calls.find(
|
||||
(c) => c.target === 'save' && c.source === 'process' && c.targetFilePath.includes('user.py'),
|
||||
);
|
||||
expect(userSave).toBeDefined();
|
||||
});
|
||||
|
||||
it('alias.save() does NOT resolve to Repo#save', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// Negative: only one save call from process to User#save
|
||||
|
|
@ -2900,15 +2891,6 @@ describe('Python assignment chain propagation', () => {
|
|||
expect(wrongCall.length).toBe(1);
|
||||
});
|
||||
|
||||
it('resolves r_alias.save() to Repo#save via assignment chain', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
// Positive: r_alias.save() must resolve to Repo#save
|
||||
const repoSave = calls.find(
|
||||
(c) => c.target === 'save' && c.source === 'process' && c.targetFilePath.includes('repo.py'),
|
||||
);
|
||||
expect(repoSave).toBeDefined();
|
||||
});
|
||||
|
||||
it('each alias resolves to its own class, not the other', () => {
|
||||
const calls = getRelationships(result, 'CALLS');
|
||||
const userSave = calls.find(
|
||||
|
|
|
|||
|
|
@ -278,6 +278,9 @@ describe('incremental graph identity before publication', () => {
|
|||
await repo.cleanup();
|
||||
}
|
||||
},
|
||||
120_000,
|
||||
// Windows takes the in-place recovery path for every row: five analysis
|
||||
// calls including repair refusal, full recovery, and the final no-op.
|
||||
// Allow slow native checkpoints to finish before the test runner times out.
|
||||
process.platform === 'win32' ? 240_000 : 120_000,
|
||||
);
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue