Grab whatever ProgramStart has stored in executionEnvironment.argc and subtract 1 (based on the assumption that ProgramStart is called with a C-style argc that counts the command name as an argument). Spoiler alert: The tests will evolve into fixtures when we implement GET_COMMAND_ARGUMENT etc. Differential Revision: https://reviews.llvm.org/D109048
33 lines
1.0 KiB
C++
33 lines
1.0 KiB
C++
//===-- flang/unittests/RuntimeGTest/CommandTest.cpp ----------------------===//
|
|
//
|
|
// 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 "../../runtime/command.h"
|
|
#include "gtest/gtest.h"
|
|
#include "../../runtime/descriptor.h"
|
|
#include "../../runtime/main.h"
|
|
|
|
using namespace Fortran::runtime;
|
|
|
|
TEST(ArgumentCount, ZeroArguments) {
|
|
const char *argv[]{"aProgram"};
|
|
RTNAME(ProgramStart)(1, argv, {});
|
|
EXPECT_EQ(0, RTNAME(ArgumentCount)());
|
|
}
|
|
|
|
TEST(ArgumentCount, OneArgument) {
|
|
const char *argv[]{"aProgram", "anArgument"};
|
|
RTNAME(ProgramStart)(2, argv, {});
|
|
EXPECT_EQ(1, RTNAME(ArgumentCount)());
|
|
}
|
|
|
|
TEST(ArgumentCount, SeveralArguments) {
|
|
const char *argv[]{"aProgram", "arg1", "arg2", "arg3", "arg4"};
|
|
RTNAME(ProgramStart)(5, argv, {});
|
|
EXPECT_EQ(4, RTNAME(ArgumentCount)());
|
|
}
|