[stackprotector] Use analysis from the StackProtector pass for stack layout in PEI...
[oota-llvm.git] / unittests / ArchiveFileDescriptor / ArchiveFileDescriptor.cpp
1 //===- llvm/unittest/ArchiveFileDescriptor/ArchiveFileDescriptor.cpp ------===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #include "llvm/Object/Archive.h"
11 #include "llvm/Object/ObjectFile.h"
12 #include "llvm/Support/MemoryBuffer.h"
13 #include "gtest/gtest.h"
14
15 using namespace llvm;
16 using namespace llvm::object;
17
18 static void failIfError(error_code EC) {
19   if (!EC)
20     return;
21
22   errs() << "ERROR: " << EC.message() << "\n";
23   exit(1);
24 }
25
26 TEST(ArchiveFileDescriptor, Test1) {
27 #if 0 // FIXME: It may be reverted.
28   int FD;
29
30   error_code EC = sys::fs::openFileForRead("ArchiveFileDescriptor", FD);
31   failIfError(EC);
32
33   OwningPtr<MemoryBuffer> MemoryBuffer;
34   EC = MemoryBuffer::getOpenFile(FD, "Dummy Filename",
35                                  MemoryBuffer,
36                                  /* FileSize */ -1,
37                                  /* RequiresNullTerminator */ false);
38   failIfError(EC);
39
40   // Attempt to open the binary.
41   OwningPtr<Binary> Binary;
42   EC = createBinary(MemoryBuffer.take(), Binary);
43   failIfError(EC);
44
45   if (Archive *Arc = dyn_cast<Archive>(Binary.get())) {
46     (void)Arc;
47     errs() << "ERROR: Loaded archive, was expecting object file\n";
48   } else if (ObjectFile *Obj = dyn_cast<ObjectFile>(Binary.get())) {
49     (void)Obj;
50   } else {
51     outs() << "ERROR: Unknown file type\n";
52     exit(1);
53   }
54 #endif
55 }