StreamingMemoryObject.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. //===- llvm/unittest/Support/StreamingMemoryObject.cpp - unit tests -------===//
  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. #include "llvm/ADT/STLExtras.h"
  10. #include "llvm/Support/StreamingMemoryObject.h"
  11. #include "gtest/gtest.h"
  12. #include <string.h>
  13. using namespace llvm;
  14. namespace {
  15. class NullDataStreamer : public DataStreamer {
  16. size_t GetBytes(unsigned char *buf, size_t len) override {
  17. memset(buf, 0, len);
  18. return len;
  19. }
  20. };
  21. }
  22. TEST(StreamingMemoryObject, Test) {
  23. auto DS = make_unique<NullDataStreamer>();
  24. StreamingMemoryObject O(std::move(DS));
  25. EXPECT_TRUE(O.isValidAddress(32 * 1024));
  26. }
  27. TEST(StreamingMemoryObject, TestSetKnownObjectSize) {
  28. auto DS = make_unique<NullDataStreamer>();
  29. StreamingMemoryObject O(std::move(DS));
  30. uint8_t Buf[32];
  31. EXPECT_EQ((uint64_t) 16, O.readBytes(Buf, 16, 0));
  32. O.setKnownObjectSize(24);
  33. EXPECT_EQ((uint64_t) 8, O.readBytes(Buf, 16, 16));
  34. }