-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: 3.1.8
-
Component/s: Testing Infrastructure
-
None
-
Minor Change
-
ALL
-
-
Platform B (10/30/15)
I was trying to build MongoDB with boost 1.59 and optons_parser_test was failing.
2015-09-18T10:41:18.279+0000 I - ************************************************** 2015-09-18T10:41:18.279+0000 I - ChainingInterface | tests: 18 | fails: 0 | assert calls: 0 | time secs: 0.001 2015-09-18T10:41:18.279+0000 I - ConfigFromFilesystem | tests: 3 | fails: 0 | assert calls: 0 | time secs: 0.169 2015-09-18T10:41:18.279+0000 I - Constraints | tests: 4 | fails: 0 | assert calls: 0 | time secs: 0.000 2015-09-18T10:41:18.279+0000 I - INIConfigFile | tests: 12 | fails: 0 | assert calls: 0 | time secs: 0.001 2015-09-18T10:41:18.279+0000 I - JSONConfigFile | tests: 17 | fails: 0 | assert calls: 0 | time secs: 0.004 2015-09-18T10:41:18.279+0000 I - LegacyInterface | tests: 3 | fails: 0 | assert calls: 0 | time secs: 0.000 2015-09-18T10:41:18.279+0000 I - NumericalBaseParsing | tests: 3 | fails: 0 | assert calls: 0 | time secs: 0.001 2015-09-18T10:41:18.279+0000 I - OptionCount | tests: 1 | fails: 0 | assert calls: 0 | time secs: 0.000 2015-09-18T10:41:18.279+0000 I - OptionSources | tests: 6 | fails: 0 | assert calls: 0 | time secs: 0.000 2015-09-18T10:41:18.279+0000 I - Parsing | tests: 23 | fails: 1 | assert calls: 0 | time secs: 0.000 ImplicitValueOverride Expected ::mongo::Status::OK() == (parser.run(testOpts, argv, env_map, &environment)) (OK == BadValue Error parsing command line: too many positional options have been specified on the command line) @src/mongo/util/options_parser/options_parser_test.cpp:768 2015-09-18T10:41:18.279+0000 I - Registration | tests: 12 | fails: 0 | assert calls: 0 | time secs: 0.000 2015-09-18T10:41:18.279+0000 I - Style | tests: 4 | fails: 0 | assert calls: 0 | time secs: 0.000 2015-09-18T10:41:18.279+0000 I - YAMLConfigFile | tests: 26 | fails: 0 | assert calls: 0 | time secs: 0.004 2015-09-18T10:41:18.279+0000 I - TOTALS | tests: 132 | fails: 1 | assert calls: 0 | time secs: 0.180 2015-09-18T10:41:18.279+0000 I - Failing tests: 2015-09-18T10:41:18.279+0000 I - Parsing/ImplicitValueOverride Failed 2015-09-18T10:41:18.279+0000 I - FAILURE - 1 tests in 1 suites failed
This is the bug in this test. This exception is expected - see the mailing list question http://lists.boost.org/boost-users/2015/09/85096.php
Documentation of boost::typed_value::implicit_value
Specifies an implicit value, which will be used if the option is given, but without an adjacent value. Using this implies that an explicit value is optional, but if given, must be strictly adjacent to the option, i.e.: 'ovalue' or 'option=value'. Giving '-o' or '-option' will cause the implicit value to be applied. Unlike the above overload, the type 'T' need not provide operator<< for ostream, but textual representation of default value must be provided by the user.
So with this args:
argv.push_back("binaryname"); argv.push_back("--port"); argv.push_back("5");
test should fail also with boost 1.56 ... !
Attached patch should fix this.
- is depended on by
-
SERVER-22525 Fix implicit options usage in test cases
- Closed