diff options
Diffstat (limited to 'test/Object/archive-update.test')
-rw-r--r-- | test/Object/archive-update.test | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/Object/archive-update.test b/test/Object/archive-update.test new file mode 100644 index 0000000000000..20286d2669ad8 --- /dev/null +++ b/test/Object/archive-update.test @@ -0,0 +1,37 @@ +Test the 'u' option of llvm-ar + +REQUIRES: shell + +RUN: cd %T +RUN: rm -f %t.a + +Create a file named evenlen that is newer than the evenlen on the source dir. +RUN: mkdir -p %t.older +RUN: echo older > %t.older/evenlen + +Either the shell supports the 'touch' command with a flag to manually set the +mtime or we sleep for over a second so that the mtime is definitely observable. +RUN: touch -m -t 200001010000 %t.older/evenlen || sleep 1.1 + +RUN: mkdir -p %t.newer +RUN: echo newer > %t.newer/evenlen +RUN: touch %t.newer/evenlen + +Create an achive with the newest file +RUN: llvm-ar r %t.a %t.newer/evenlen +RUN: llvm-ar p %t.a | FileCheck --check-prefix=NEWER %s + +Check that without the 'u' option the member is replaced with an older file. +RUN: llvm-ar r %t.a %t.older/evenlen +RUN: llvm-ar p %t.a | FileCheck --check-prefix=OLDER %s + +Check that with the 'u' option the member is replaced with a newer file. +RUN: llvm-ar ru %t.a %t.newer/evenlen +RUN: llvm-ar p %t.a | FileCheck --check-prefix=NEWER %s + +Check that with the 'u' option the member is not replaced with an older file. +RUN: llvm-ar ru %t.a %t.older/evenlen +RUN: llvm-ar p %t.a | FileCheck --check-prefix=NEWER %s + +NEWER: newer +OLDER: older |