Description
When check the perf version with the "perf::version" gets the command output of "perf --version". The command return string includes a "return key". It cause the version parse fails. If add the strings::trim, the issue is fixed.
The old code:
Future<Version> version() { internal::Perf* perf = new internal::Perf({"--version"}); Future<string> output = perf->output(); spawn(perf, true); return output .then([](const string& output) -> Future<Version> { // Trim off the leading 'perf version ' text to convert. return Version::parse(strings::remove( output, "perf version ", strings::PREFIX)); }); };
Change to below, issue is fixed:
Future<Version> version() { internal::Perf* perf = new internal::Perf({"--version"}); Future<string> output = perf->output(); spawn(perf, true); return output .then([](const string& output) -> Future<Version> { // Trim off the leading 'perf version ' text to convert. return Version::parse(strings::trim(strings::remove( output, "perf version ", strings::PREFIX))); }); };