xref: /aosp_15_r20/external/armnn/tests/CxxoptsUtils.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020 Arm Ltd. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #pragma once
7*89c4ff92SAndroid Build Coastguard Worker 
8*89c4ff92SAndroid Build Coastguard Worker #include <cxxopts/cxxopts.hpp>
9*89c4ff92SAndroid Build Coastguard Worker 
10*89c4ff92SAndroid Build Coastguard Worker /**
11*89c4ff92SAndroid Build Coastguard Worker  * Ensure all mandatory command-line parameters have been passed to cxxopts.
12*89c4ff92SAndroid Build Coastguard Worker  * @param result returned from the cxxopts parse(argc, argv) call
13*89c4ff92SAndroid Build Coastguard Worker  * @param required vector of strings listing the mandatory parameters to be input from the command-line
14*89c4ff92SAndroid Build Coastguard Worker  * @return boolean value - true if all required parameters satisfied, false otherwise
15*89c4ff92SAndroid Build Coastguard Worker  * */
CheckRequiredOptions(const cxxopts::ParseResult & result,const std::vector<std::string> & required)16*89c4ff92SAndroid Build Coastguard Worker inline bool CheckRequiredOptions(const cxxopts::ParseResult& result, const std::vector<std::string>& required)
17*89c4ff92SAndroid Build Coastguard Worker {
18*89c4ff92SAndroid Build Coastguard Worker     for(const std::string& str : required)
19*89c4ff92SAndroid Build Coastguard Worker     {
20*89c4ff92SAndroid Build Coastguard Worker         if(result.count(str) == 0)
21*89c4ff92SAndroid Build Coastguard Worker         {
22*89c4ff92SAndroid Build Coastguard Worker             std::cerr << "--" << str << " parameter is mandatory" << std::endl;
23*89c4ff92SAndroid Build Coastguard Worker             return false;
24*89c4ff92SAndroid Build Coastguard Worker         }
25*89c4ff92SAndroid Build Coastguard Worker     }
26*89c4ff92SAndroid Build Coastguard Worker     return true;
27*89c4ff92SAndroid Build Coastguard Worker }
28