#include <gtest/gtest.h>

extern "C" {
  #include "gaf.h"
  #include "pa_tz_api.h"
  #include "kernel_access.h"
}

extern "C" PaTzResult KernelAccessGetBytes(KernelAccessInfo *context, KernelAddress address, 
                                           size_t size, void *out) {
  return PA_TZ_SUCCESS;
}

class LoadGafInfoTest : public ::testing::Test {
protected:
  virtual void SetUp() {
  }

  virtual void TearDown() {
  }
};


TEST_F(LoadGafInfoTest, GafVirtAddrNull) {
  PaTzResult result;  
  KernelAddress gaf_virt_addr_null = 0x0;
  GafInfo out_gaf;

  result = LoadGafInfo(gaf_virt_addr_null, &out_gaf);

  EXPECT_TRUE(PA_TZ_GENERAL_ERROR == result);
}
