From a211998bc9b3940ac922d9f554c09515b3bdd8ff Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 22 Apr 2025 13:52:15 +0200 Subject: [PATCH] Swift: Make file checking in integration tests more strict With Swift 6.1 the extractor will start to extract files outside of the test directory. These files and their elements we do not want to see in our tests. --- .../autobuilder/xcode-fails-spm-works/Files.ql | 1 + swift/ql/integration-tests/osx/canonical-case/Files.ql | 1 + swift/ql/integration-tests/osx/hello-ios/Files.ql | 1 + swift/ql/integration-tests/osx/hello-xcode/Files.ql | 1 + swift/ql/integration-tests/posix/cross-references/Classes.ql | 4 +++- .../posix/cross-references/Deinitializers.ql | 4 +++- swift/ql/integration-tests/posix/cross-references/Enums.ql | 4 +++- .../ql/integration-tests/posix/cross-references/Functions.ql | 4 +++- .../integration-tests/posix/cross-references/Initializers.ql | 4 +++- .../ql/integration-tests/posix/cross-references/Protocols.ql | 4 +++- swift/ql/integration-tests/posix/cross-references/Structs.ql | 4 +++- swift/ql/integration-tests/posix/cross-references/VarDecls.ql | 4 +++- .../ql/integration-tests/posix/frontend-invocations/Files.ql | 1 + swift/ql/integration-tests/posix/hello-world/test.ql | 1 + swift/ql/integration-tests/posix/symlinks/Files.ql | 1 + 15 files changed, 31 insertions(+), 8 deletions(-) diff --git a/swift/ql/integration-tests/autobuilder/xcode-fails-spm-works/Files.ql b/swift/ql/integration-tests/autobuilder/xcode-fails-spm-works/Files.ql index 9782ea4ce0bd..0ef878215647 100644 --- a/swift/ql/integration-tests/autobuilder/xcode-fails-spm-works/Files.ql +++ b/swift/ql/integration-tests/autobuilder/xcode-fails-spm-works/Files.ql @@ -1,4 +1,5 @@ import swift from File f +where exists(f.getRelativePath()) or f instanceof UnknownFile select f diff --git a/swift/ql/integration-tests/osx/canonical-case/Files.ql b/swift/ql/integration-tests/osx/canonical-case/Files.ql index 9782ea4ce0bd..0ef878215647 100644 --- a/swift/ql/integration-tests/osx/canonical-case/Files.ql +++ b/swift/ql/integration-tests/osx/canonical-case/Files.ql @@ -1,4 +1,5 @@ import swift from File f +where exists(f.getRelativePath()) or f instanceof UnknownFile select f diff --git a/swift/ql/integration-tests/osx/hello-ios/Files.ql b/swift/ql/integration-tests/osx/hello-ios/Files.ql index 9782ea4ce0bd..0ef878215647 100644 --- a/swift/ql/integration-tests/osx/hello-ios/Files.ql +++ b/swift/ql/integration-tests/osx/hello-ios/Files.ql @@ -1,4 +1,5 @@ import swift from File f +where exists(f.getRelativePath()) or f instanceof UnknownFile select f diff --git a/swift/ql/integration-tests/osx/hello-xcode/Files.ql b/swift/ql/integration-tests/osx/hello-xcode/Files.ql index 9782ea4ce0bd..0ef878215647 100644 --- a/swift/ql/integration-tests/osx/hello-xcode/Files.ql +++ b/swift/ql/integration-tests/osx/hello-xcode/Files.ql @@ -1,4 +1,5 @@ import swift from File f +where exists(f.getRelativePath()) or f instanceof UnknownFile select f diff --git a/swift/ql/integration-tests/posix/cross-references/Classes.ql b/swift/ql/integration-tests/posix/cross-references/Classes.ql index dbdbcb723b99..d3c0d759de6b 100644 --- a/swift/ql/integration-tests/posix/cross-references/Classes.ql +++ b/swift/ql/integration-tests/posix/cross-references/Classes.ql @@ -1,5 +1,7 @@ import swift from ClassDecl d -where d.getLocation().getFile().getBaseName() != "Package.swift" +where + d.getLocation().getFile().getBaseName() != "Package.swift" and + exists(d.getLocation().getFile().getRelativePath()) select d diff --git a/swift/ql/integration-tests/posix/cross-references/Deinitializers.ql b/swift/ql/integration-tests/posix/cross-references/Deinitializers.ql index b92919487182..9180f63667f8 100644 --- a/swift/ql/integration-tests/posix/cross-references/Deinitializers.ql +++ b/swift/ql/integration-tests/posix/cross-references/Deinitializers.ql @@ -1,5 +1,7 @@ import swift from Deinitializer d -where d.getLocation().getFile().getBaseName() != "Package.swift" +where + d.getLocation().getFile().getBaseName() != "Package.swift" and + exists(d.getLocation().getFile().getRelativePath()) select d diff --git a/swift/ql/integration-tests/posix/cross-references/Enums.ql b/swift/ql/integration-tests/posix/cross-references/Enums.ql index 5417ec05610e..ebfcaafa0ef7 100644 --- a/swift/ql/integration-tests/posix/cross-references/Enums.ql +++ b/swift/ql/integration-tests/posix/cross-references/Enums.ql @@ -1,5 +1,7 @@ import swift from EnumDecl d -where d.getLocation().getFile().getBaseName() != "Package.swift" +where + d.getLocation().getFile().getBaseName() != "Package.swift" and + exists(d.getLocation().getFile().getRelativePath()) select d diff --git a/swift/ql/integration-tests/posix/cross-references/Functions.ql b/swift/ql/integration-tests/posix/cross-references/Functions.ql index d166c2a51ecf..50b9393d9530 100644 --- a/swift/ql/integration-tests/posix/cross-references/Functions.ql +++ b/swift/ql/integration-tests/posix/cross-references/Functions.ql @@ -1,5 +1,7 @@ import codeql.swift.elements.decl.internal.AccessorOrNamedFunction from AccessorOrNamedFunction f -where f.getLocation().getFile().getBaseName() != "Package.swift" +where + f.getLocation().getFile().getBaseName() != "Package.swift" and + exists(f.getLocation().getFile().getRelativePath()) select f diff --git a/swift/ql/integration-tests/posix/cross-references/Initializers.ql b/swift/ql/integration-tests/posix/cross-references/Initializers.ql index 743988464177..c9b5a4e136b4 100644 --- a/swift/ql/integration-tests/posix/cross-references/Initializers.ql +++ b/swift/ql/integration-tests/posix/cross-references/Initializers.ql @@ -1,5 +1,7 @@ import swift from Initializer d -where d.getLocation().getFile().getBaseName() != "Package.swift" +where + d.getLocation().getFile().getBaseName() != "Package.swift" and + exists(d.getLocation().getFile().getRelativePath()) select d diff --git a/swift/ql/integration-tests/posix/cross-references/Protocols.ql b/swift/ql/integration-tests/posix/cross-references/Protocols.ql index 521dfeee7053..cde35a03d5f7 100644 --- a/swift/ql/integration-tests/posix/cross-references/Protocols.ql +++ b/swift/ql/integration-tests/posix/cross-references/Protocols.ql @@ -1,5 +1,7 @@ import swift from ProtocolDecl d -where d.getLocation().getFile().getBaseName() != "Package.swift" +where + d.getLocation().getFile().getBaseName() != "Package.swift" and + exists(d.getLocation().getFile().getRelativePath()) select d diff --git a/swift/ql/integration-tests/posix/cross-references/Structs.ql b/swift/ql/integration-tests/posix/cross-references/Structs.ql index d746e92752ed..6b8dd3556bdb 100644 --- a/swift/ql/integration-tests/posix/cross-references/Structs.ql +++ b/swift/ql/integration-tests/posix/cross-references/Structs.ql @@ -1,5 +1,7 @@ import swift from StructDecl d -where d.getLocation().getFile().getBaseName() != "Package.swift" +where + d.getLocation().getFile().getBaseName() != "Package.swift" and + exists(d.getLocation().getFile().getRelativePath()) select d diff --git a/swift/ql/integration-tests/posix/cross-references/VarDecls.ql b/swift/ql/integration-tests/posix/cross-references/VarDecls.ql index 9d227acd4722..cdaa7d588981 100644 --- a/swift/ql/integration-tests/posix/cross-references/VarDecls.ql +++ b/swift/ql/integration-tests/posix/cross-references/VarDecls.ql @@ -1,5 +1,7 @@ import swift from VarDecl d -where d.getLocation().getFile().getBaseName() != "Package.swift" +where + d.getLocation().getFile().getBaseName() != "Package.swift" and + exists(d.getLocation().getFile().getRelativePath()) select d diff --git a/swift/ql/integration-tests/posix/frontend-invocations/Files.ql b/swift/ql/integration-tests/posix/frontend-invocations/Files.ql index 9782ea4ce0bd..0ef878215647 100644 --- a/swift/ql/integration-tests/posix/frontend-invocations/Files.ql +++ b/swift/ql/integration-tests/posix/frontend-invocations/Files.ql @@ -1,4 +1,5 @@ import swift from File f +where exists(f.getRelativePath()) or f instanceof UnknownFile select f diff --git a/swift/ql/integration-tests/posix/hello-world/test.ql b/swift/ql/integration-tests/posix/hello-world/test.ql index 9782ea4ce0bd..0ef878215647 100644 --- a/swift/ql/integration-tests/posix/hello-world/test.ql +++ b/swift/ql/integration-tests/posix/hello-world/test.ql @@ -1,4 +1,5 @@ import swift from File f +where exists(f.getRelativePath()) or f instanceof UnknownFile select f diff --git a/swift/ql/integration-tests/posix/symlinks/Files.ql b/swift/ql/integration-tests/posix/symlinks/Files.ql index 9782ea4ce0bd..0ef878215647 100644 --- a/swift/ql/integration-tests/posix/symlinks/Files.ql +++ b/swift/ql/integration-tests/posix/symlinks/Files.ql @@ -1,4 +1,5 @@ import swift from File f +where exists(f.getRelativePath()) or f instanceof UnknownFile select f