1 //===- CommandTest.cpp -- command line runtime builder unit tests ---------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #include "flang/Optimizer/Builder/Runtime/Command.h" 10 #include "RuntimeCallTestBase.h" 11 #include "gtest/gtest.h" 12 13 TEST_F(RuntimeCallTest, genCommandArgumentCountTest) { 14 mlir::Location loc = firBuilder->getUnknownLoc(); 15 mlir::Value result = fir::runtime::genCommandArgumentCount(*firBuilder, loc); 16 checkCallOp(result.getDefiningOp(), "_FortranAArgumentCount", /*nbArgs=*/0, 17 /*addLocArgs=*/false); 18 } 19 20 TEST_F(RuntimeCallTest, genGetCommandArgument) { 21 mlir::Location loc = firBuilder->getUnknownLoc(); 22 mlir::Type intTy = firBuilder->getDefaultIntegerType(); 23 mlir::Type boxTy = fir::BoxType::get(firBuilder->getNoneType()); 24 mlir::Value number = firBuilder->create<fir::UndefOp>(loc, intTy); 25 mlir::Value value = firBuilder->create<fir::UndefOp>(loc, boxTy); 26 mlir::Value length = firBuilder->create<fir::UndefOp>(loc, boxTy); 27 mlir::Value errmsg = firBuilder->create<fir::UndefOp>(loc, boxTy); 28 mlir::Value result = fir::runtime::genGetCommandArgument( 29 *firBuilder, loc, number, value, length, errmsg); 30 checkCallOp(result.getDefiningOp(), "_FortranAGetCommandArgument", 31 /*nbArgs=*/4, 32 /*addLocArgs=*/true); 33 } 34 35 TEST_F(RuntimeCallTest, genGetEnvVariable) { 36 mlir::Location loc = firBuilder->getUnknownLoc(); 37 mlir::Value name = firBuilder->create<fir::UndefOp>(loc, boxTy); 38 mlir::Value value = firBuilder->create<fir::UndefOp>(loc, boxTy); 39 mlir::Value length = firBuilder->create<fir::UndefOp>(loc, boxTy); 40 mlir::Value trimName = firBuilder->create<fir::UndefOp>(loc, i1Ty); 41 mlir::Value errmsg = firBuilder->create<fir::UndefOp>(loc, boxTy); 42 mlir::Value result = fir::runtime::genGetEnvVariable( 43 *firBuilder, loc, name, value, length, trimName, errmsg); 44 checkCallOp(result.getDefiningOp(), "_FortranAGetEnvVariable", /*nbArgs=*/5, 45 /*addLocArgs=*/true); 46 } 47 48 TEST_F(RuntimeCallTest, genGetPID) { 49 mlir::Location loc = firBuilder->getUnknownLoc(); 50 mlir::Value result = fir::runtime::genGetPID(*firBuilder, loc); 51 checkCallOp(result.getDefiningOp(), "_FortranAGetPID", /*nbArgs=*/0, 52 /*addLocArgs=*/false); 53 } 54