kousikk updated this revision to Diff 225375.
kousikk added a comment.

Fix tests now that output is in ascending order


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69090/new/

https://reviews.llvm.org/D69090

Files:
  clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
  clang/test/ClangScanDeps/Inputs/non-header-dependency.json
  clang/test/ClangScanDeps/Inputs/sanitize-blacklist.txt
  clang/test/ClangScanDeps/header_stat_before_open.m
  clang/test/ClangScanDeps/headerwithdirname.cpp
  clang/test/ClangScanDeps/headerwithdirnamefollowedbyinclude.cpp
  clang/test/ClangScanDeps/no-werror.cpp
  clang/test/ClangScanDeps/non-header-dependency.cpp
  clang/test/ClangScanDeps/regular_cdb.cpp
  clang/test/ClangScanDeps/subframework_header_dir_symlink.m
  clang/test/ClangScanDeps/symlink.cpp
  clang/test/ClangScanDeps/vfsoverlay.cpp
  clang/tools/clang-scan-deps/ClangScanDeps.cpp

Index: clang/tools/clang-scan-deps/ClangScanDeps.cpp
===================================================================
--- clang/tools/clang-scan-deps/ClangScanDeps.cpp
+++ clang/tools/clang-scan-deps/ClangScanDeps.cpp
@@ -17,6 +17,7 @@
 #include "llvm/Support/Signals.h"
 #include "llvm/Support/Threading.h"
 #include <mutex>
+#include <set>
 #include <thread>
 
 using namespace clang;
@@ -66,7 +67,7 @@
                                 StringRef File) override {
         if (!this->Opts)
           this->Opts = std::make_unique<DependencyOutputOptions>(Opts);
-        Dependencies.push_back(File);
+        Dependencies.insert(File);
       }
 
       void printDependencies(std::string &S) {
@@ -76,7 +77,7 @@
         class DependencyPrinter : public DependencyFileGenerator {
         public:
           DependencyPrinter(DependencyOutputOptions &Opts,
-                            ArrayRef<std::string> Dependencies)
+                            std::set<std::string> &Dependencies)
               : DependencyFileGenerator(Opts) {
             for (const auto &Dep : Dependencies)
               addDependency(Dep);
@@ -94,7 +95,7 @@
 
     private:
       std::unique_ptr<DependencyOutputOptions> Opts;
-      std::vector<std::string> Dependencies;
+      std::set<std::string> Dependencies;
     };
 
     DependencyPrinterConsumer Consumer;
Index: clang/test/ClangScanDeps/vfsoverlay.cpp
===================================================================
--- clang/test/ClangScanDeps/vfsoverlay.cpp
+++ clang/test/ClangScanDeps/vfsoverlay.cpp
@@ -13,5 +13,5 @@
 #include "not_real.h"
 
 // CHECK: vfsoverlay_input.o
-// CHECK-NEXT: vfsoverlay_input.cpp
 // CHECK-NEXT: Inputs{{/|\\}}header.h
+// CHECK-NEXT: vfsoverlay_input.cpp
Index: clang/test/ClangScanDeps/symlink.cpp
===================================================================
--- clang/test/ClangScanDeps/symlink.cpp
+++ clang/test/ClangScanDeps/symlink.cpp
@@ -14,10 +14,10 @@
 #include "symlink.h"
 #include "header.h"
 
-// CHECK: symlink_input.cpp
+// CHECK: Inputs{{/|\\}}header.h
 // CHECK-NEXT: Inputs{{/|\\}}symlink.h
-// CHECK-NEXT: Inputs{{/|\\}}header.h
+// CHECK-NEXT: symlink_input.cpp
 
-// CHECK: symlink_input2.cpp
+// CHECK: Inputs{{/|\\}}header.h
 // CHECK-NEXT: Inputs{{/|\\}}symlink.h
-// CHECK-NEXT: Inputs{{/|\\}}header.h
+// CHECK-NEXT: symlink_input2.cpp
\ No newline at end of file
Index: clang/test/ClangScanDeps/subframework_header_dir_symlink.m
===================================================================
--- clang/test/ClangScanDeps/subframework_header_dir_symlink.m
+++ clang/test/ClangScanDeps/subframework_header_dir_symlink.m
@@ -20,5 +20,5 @@
 // CHECK: subframework_header_dir_symlink_input.o
 // CHECK-NEXT: subframework_header_dir_symlink_input.m
 // CHECK: subframework_header_dir_symlink_input2.o
-// CHECK-NEXT: subframework_header_dir_symlink_input2.m
 // CHECK-NEXT: Inputs{{/|\\}}frameworks_symlink{{/|\\}}Framework.framework{{/|\\}}Headers{{/|\\}}Framework.h
+// CHECK-NEXT: subframework_header_dir_symlink_input2.m
Index: clang/test/ClangScanDeps/regular_cdb.cpp
===================================================================
--- clang/test/ClangScanDeps/regular_cdb.cpp
+++ clang/test/ClangScanDeps/regular_cdb.cpp
@@ -36,10 +36,11 @@
 #include "header.h"
 
 // CHECK1: regular_cdb_input2.cpp
-// CHECK1-NEXT: regular_cdb_input2.cpp
 // CHECK1-NEXT: Inputs{{/|\\}}header.h
 // CHECK1-NEXT: Inputs{{/|\\}}header2.h
+// CHECK1-NEXT: regular_cdb_input2.cpp
 
-// CHECK2: regular_cdb_input.cpp
+// CHECK2: regular_cdb_input.o
 // CHECK2-NEXT: Inputs{{/|\\}}header.h
-// CHECK2NO-NOT: header2
+// CHECK2NO-NOT: header2.h
+// CHECK2-NEXT: regular_cdb_input.cpp
Index: clang/test/ClangScanDeps/non-header-dependency.cpp
===================================================================
--- /dev/null
+++ clang/test/ClangScanDeps/non-header-dependency.cpp
@@ -0,0 +1,14 @@
+// RUN: rm -rf %t.dir
+// RUN: rm -rf %t.cdb
+// RUN: mkdir -p %t.dir
+// RUN: cp %s %t.dir/non-header-dependency_input.cpp
+// RUN: mkdir %t.dir/Inputs
+// RUN: cp %S/Inputs/sanitize-blacklist.txt %t.dir/Inputs/sanitize-blacklist.txt
+// RUN: sed -e "s|DIR|%/t.dir|g" %S/Inputs/non-header-dependency.json > %t.cdb
+//
+// RUN: clang-scan-deps -compilation-database %t.cdb -j 1 | FileCheck %s
+
+#define FOO "foo"
+
+// CHECK: Inputs{{/|\\}}sanitize-blacklist.txt
+// CHECK-NEXT: non-header-dependency_input.cpp
Index: clang/test/ClangScanDeps/no-werror.cpp
===================================================================
--- clang/test/ClangScanDeps/no-werror.cpp
+++ clang/test/ClangScanDeps/no-werror.cpp
@@ -12,5 +12,5 @@
 
 #include "sys-header.h"
 
-// CHECK: no-werror_input.cpp
-// CHECK-NEXT: Inputs{{/|\\}}sys-header.h
+// CHECK: Inputs{{/|\\}}sys-header.h
+// CHECK-NEXT: no-werror_input.cpp
Index: clang/test/ClangScanDeps/headerwithdirnamefollowedbyinclude.cpp
===================================================================
--- clang/test/ClangScanDeps/headerwithdirnamefollowedbyinclude.cpp
+++ clang/test/ClangScanDeps/headerwithdirnamefollowedbyinclude.cpp
@@ -17,5 +17,6 @@
 #include "foodir/foodirheader.h"
 
 // CHECK: headerwithdirname_input.o
-// CHECK-NEXT: headerwithdirname_input.cpp
 // CHECK-NEXT: Inputs{{/|\\}}foodir
+// CHECK-NEXT: foodir{{/|\\}}foodirheader.h
+// CHECK-NEXT: headerwithdirname_input.cpp
Index: clang/test/ClangScanDeps/headerwithdirname.cpp
===================================================================
--- clang/test/ClangScanDeps/headerwithdirname.cpp
+++ clang/test/ClangScanDeps/headerwithdirname.cpp
@@ -13,5 +13,5 @@
 #include <foodir>
 
 // CHECK: headerwithdirname_input.o
-// CHECK-NEXT: headerwithdirname_input.cpp
 // CHECK-NEXT: Inputs{{/|\\}}foodir
+// CHECK-NEXT: headerwithdirname_input.cpp
Index: clang/test/ClangScanDeps/header_stat_before_open.m
===================================================================
--- clang/test/ClangScanDeps/header_stat_before_open.m
+++ clang/test/ClangScanDeps/header_stat_before_open.m
@@ -13,6 +13,6 @@
 #include "Framework/PrivateHeader.h"
 
 // CHECK: header_stat_before_open_input.o
-// CHECK-NEXT: header_stat_before_open_input.m
 // CHECK-NEXT: Inputs{{/|\\}}frameworks{{/|\\}}Framework.framework{{/|\\}}Headers{{/|\\}}Framework.h
 // CHECK-NEXT: Inputs{{/|\\}}frameworks{{/|\\}}Framework.framework{{/|\\}}PrivateHeaders{{/|\\}}PrivateHeader.h
+// CHECK-NEXT: header_stat_before_open_input.m
Index: clang/test/ClangScanDeps/Inputs/sanitize-blacklist.txt
===================================================================
--- /dev/null
+++ clang/test/ClangScanDeps/Inputs/sanitize-blacklist.txt
@@ -0,0 +1 @@
+fun:*
Index: clang/test/ClangScanDeps/Inputs/non-header-dependency.json
===================================================================
--- /dev/null
+++ clang/test/ClangScanDeps/Inputs/non-header-dependency.json
@@ -0,0 +1,7 @@
+[
+    {
+      "directory": "DIR",
+      "command": "clang -E DIR/non-header-dependency_input.cpp -fsanitize=bounds -fsanitize-blacklist=DIR/Inputs/sanitize-blacklist.txt",
+      "file": "DIR/non-header-dependency_input.cpp"
+    }
+]
Index: clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
===================================================================
--- clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
+++ clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
@@ -36,6 +36,8 @@
       llvm::sys::path::remove_dots(CanonPath, /*remove_dot_dot=*/true);
       C.handleFileDependency(*Opts, CanonPath);
     }
+    for (const auto& ExtraDep : Opts->ExtraDeps)
+      C.handleFileDependency(*Opts, ExtraDep);
   }
 
 private:
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to