//===-- Unittests for stdckdint -------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "test/UnitTest/Test.h"

#include "include/llvm-libc-macros/stdckdint-macros.h"

TEST(LlvmLibcStdCkdIntTest, Add) {
  int result;
  ASSERT_FALSE(ckd_add(&result, 1, 2));
  ASSERT_EQ(result, 3);
  ASSERT_TRUE(ckd_add(&result, INT_MAX, 1));
}

TEST(LlvmLibcStdCkdIntTest, Sub) {
  int result;
  ASSERT_FALSE(ckd_sub(&result, 3, 2));
  ASSERT_EQ(result, 1);
  ASSERT_TRUE(ckd_sub(&result, INT_MIN, 1));
}

TEST(LlvmLibcStdCkdIntTest, Mul) {
  int result;
  ASSERT_FALSE(ckd_mul(&result, 2, 3));
  ASSERT_EQ(result, 6);
  ASSERT_TRUE(ckd_mul(&result, INT_MAX, 2));
}
