//===- 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; EC = MemoryBuffer::getOpenFile(FD, "Dummy Filename", MemoryBuffer, /* FileSize */ -1, /* RequiresNullTerminator */ false); failIfError(EC); // Attempt to open the binary. OwningPtr Binary; EC = createBinary(MemoryBuffer.take(), Binary); failIfError(EC); if (Archive *Arc = dyn_cast(Binary.get())) { (void)Arc; errs() << "ERROR: Loaded archive, was expecting object file\n"; } else if (ObjectFile *Obj = dyn_cast(Binary.get())) { (void)Obj; } else { outs() << "ERROR: Unknown file type\n"; exit(1); } #endif }