ArchiveFileDescriptorTests: Resurrect part of r197600, but make it invalidated, to...
authorNAKAMURA Takumi <geek4civic@gmail.com>
Thu, 19 Dec 2013 00:41:03 +0000 (00:41 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Thu, 19 Dec 2013 00:41:03 +0000 (00:41 +0000)
Please revert this several hours later ;)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197635 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/ArchiveFileDescriptor/ArchiveFileDescriptor.cpp [new file with mode: 0644]
unittests/ArchiveFileDescriptor/CMakeLists.txt [new file with mode: 0644]
unittests/ArchiveFileDescriptor/Makefile [new file with mode: 0644]
unittests/CMakeLists.txt
unittests/Makefile

diff --git a/unittests/ArchiveFileDescriptor/ArchiveFileDescriptor.cpp b/unittests/ArchiveFileDescriptor/ArchiveFileDescriptor.cpp
new file mode 100644 (file)
index 0000000..1cafa24
--- /dev/null
@@ -0,0 +1,55 @@
+//===- llvm/unittest/ArchiveFileDescriptor/ArchiveFileDescriptor.cpp ------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/Object/Archive.h"
+#include "llvm/Object/ObjectFile.h"
+#include "llvm/Support/MemoryBuffer.h"
+#include "gtest/gtest.h"
+
+using namespace llvm;
+using namespace llvm::object;
+
+static void failIfError(error_code EC) {
+  if (!EC)
+    return;
+
+  errs() << "ERROR: " << EC.message() << "\n";
+  exit(1);
+}
+
+TEST(ArchiveFileDescriptor, Test1) {
+#if 0 // FIXME: It may be reverted.
+  int FD;
+
+  error_code EC = sys::fs::openFileForRead("ArchiveFileDescriptor", FD);
+  failIfError(EC);
+
+  OwningPtr<MemoryBuffer> MemoryBuffer;
+  EC = MemoryBuffer::getOpenFile(FD, "Dummy Filename",
+                                 MemoryBuffer,
+                                 /* FileSize */ -1,
+                                 /* RequiresNullTerminator */ false);
+  failIfError(EC);
+
+  // Attempt to open the binary.
+  OwningPtr<Binary> Binary;
+  EC = createBinary(MemoryBuffer.take(), Binary);
+  failIfError(EC);
+
+  if (Archive *Arc = dyn_cast<Archive>(Binary.get())) {
+    (void)Arc;
+    errs() << "ERROR: Loaded archive, was expecting object file\n";
+  } else if (ObjectFile *Obj = dyn_cast<ObjectFile>(Binary.get())) {
+    (void)Obj;
+  } else {
+    outs() << "ERROR: Unknown file type\n";
+    exit(1);
+  }
+#endif
+}
diff --git a/unittests/ArchiveFileDescriptor/CMakeLists.txt b/unittests/ArchiveFileDescriptor/CMakeLists.txt
new file mode 100644 (file)
index 0000000..c7e292a
--- /dev/null
@@ -0,0 +1,8 @@
+set(LLVM_LINK_COMPONENTS
+  Object
+  Support
+  )
+
+add_llvm_unittest(ArchiveFileDescriptor
+  ArchiveFileDescriptor.cpp
+  )
diff --git a/unittests/ArchiveFileDescriptor/Makefile b/unittests/ArchiveFileDescriptor/Makefile
new file mode 100644 (file)
index 0000000..460b86c
--- /dev/null
@@ -0,0 +1,15 @@
+##===- unittests/ArchiveFileDescriptor/Makefile ------------*- Makefile -*-===##
+#
+#                     The LLVM Compiler Infrastructure
+#
+# This file is distributed under the University of Illinois Open Source
+# License. See LICENSE.TXT for details.
+#
+##===----------------------------------------------------------------------===##
+
+LEVEL = ../..
+TESTNAME = ArchiveFileDescriptor
+LINK_COMPONENTS := object
+
+include $(LEVEL)/Makefile.config
+include $(LLVM_SRC_ROOT)/unittests/Makefile.unittest
index 52702ba23aac616060784a4bc286c0edaddd3bc7..9857e787eebee522c60c0c181674f9198b20a88c 100644 (file)
@@ -7,6 +7,7 @@ endfunction()
 
 add_subdirectory(ADT)
 add_subdirectory(Analysis)
+add_subdirectory(ArchiveFileDescriptor)
 add_subdirectory(Bitcode)
 add_subdirectory(CodeGen)
 add_subdirectory(DebugInfo)
index 06ba93243e38557f395035825aaf41fce5ea9550..d80cab262127430cf58c6b06ccbce8b2059a2acf 100644 (file)
@@ -9,8 +9,8 @@
 
 LEVEL = ..
 
-PARALLEL_DIRS = ADT Analysis Bitcode CodeGen DebugInfo ExecutionEngine IR \
-               MC Object Option Support Transforms
+PARALLEL_DIRS = ADT Analysis ArchiveFileDescriptor Bitcode CodeGen DebugInfo \
+               ExecutionEngine IR MC Object Option Support Transforms
 
 include $(LEVEL)/Makefile.common