blob: a2803c2ef67480072a1a10e9041ab26bb1796882 [file] [log] [blame]
// Copyright 2021 The Fuchsia Authors
//
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT
#include "mmu.h"
#include <stdlib.h>
#include <gtest/gtest.h>
namespace page_table::x86 {
TEST(IsCanonicalVaddr, Simple) {
EXPECT_TRUE(IsCanonicalVaddr(Vaddr(0x0000'0000'0000'0000)));
EXPECT_TRUE(IsCanonicalVaddr(Vaddr(0x0000'7fff'ffff'ffff)));
EXPECT_TRUE(IsCanonicalVaddr(Vaddr(0xffff'8000'0000'0000)));
EXPECT_TRUE(IsCanonicalVaddr(Vaddr(0xffff'ffff'ffff'ffff)));
EXPECT_FALSE(IsCanonicalVaddr(Vaddr(0x0000'8000'0000'0000)));
EXPECT_FALSE(IsCanonicalVaddr(Vaddr(0x0000'ffff'ffff'ffff)));
EXPECT_FALSE(IsCanonicalVaddr(Vaddr(0x0001'0000'0000'0000)));
EXPECT_FALSE(IsCanonicalVaddr(Vaddr(0x0001'ffff'ffff'ffff)));
EXPECT_FALSE(IsCanonicalVaddr(Vaddr(0x8000'0000'0000'0000)));
EXPECT_FALSE(IsCanonicalVaddr(Vaddr(0xffff'0000'0000'0000)));
}
} // namespace page_table::x86