Skip to content

Commit 0b3ce48

Browse files
committed
Don't use CHECK in assemble_cvd/flags.cc
The `CHECK` calls can be replaced with `CF_EXPECT` calls to return stack traces in the errors. Bug: b/464089586
1 parent cd5c86f commit 0b3ce48

File tree

1 file changed

+19
-15
lines changed
  • base/cvd/cuttlefish/host/commands/assemble_cvd

1 file changed

+19
-15
lines changed

base/cvd/cuttlefish/host/commands/assemble_cvd/flags.cc

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,10 @@ using vm_manager::GetVmManager;
9393

9494
namespace {
9595

96-
std::pair<uint16_t, uint16_t> ParsePortRange(const std::string& flag) {
96+
Result<std::pair<uint16_t, uint16_t>> ParsePortRange(const std::string& flag) {
9797
static const std::regex rgx("[0-9]+:[0-9]+");
98-
CHECK(std::regex_match(flag, rgx))
99-
<< "Port range flag has invalid value: " << flag;
98+
CF_EXPECTF(std::regex_match(flag, rgx),
99+
"Port range flag has invalid value: '{}'", flag);
100100
std::pair<uint16_t, uint16_t> port_range;
101101
std::stringstream ss(flag);
102102
char c;
@@ -342,8 +342,8 @@ Result<CuttlefishConfig> InitializeCuttlefishConfiguration(
342342
}
343343

344344
for (const auto& fragment : injector.getMultibindings<ConfigFragment>()) {
345-
CHECK(tmp_config_obj.SaveFragment(*fragment))
346-
<< "Failed to save fragment " << fragment->Name();
345+
CF_EXPECTF(tmp_config_obj.SaveFragment(*fragment),
346+
"Failed to save fragment '{}'", fragment->Name());
347347
}
348348

349349
tmp_config_obj.set_root_dir(root_dir);
@@ -624,9 +624,10 @@ Result<CuttlefishConfig> InitializeCuttlefishConfiguration(
624624
std::string default_enable_virtiofs = "";
625625
std::string comma_str = "";
626626

627-
CHECK(FLAGS_use_overlay || instance_nums.size() == 1)
628-
<< "`--use_overlay=false` is incompatible with multiple instances";
629-
CHECK(!instance_nums.empty()) << "Requires at least one instance.";
627+
CF_EXPECT(FLAGS_use_overlay || instance_nums.size() == 1,
628+
"`--use_overlay=false` is incompatible with multiple instances");
629+
CF_EXPECT(!instance_nums.empty(), "Requires at least one instance.");
630+
630631
auto rootcanal_instance_num = *instance_nums.begin() - 1;
631632
if (FLAGS_rootcanal_instance_num > 0) {
632633
rootcanal_instance_num = FLAGS_rootcanal_instance_num - 1;
@@ -859,16 +860,17 @@ Result<CuttlefishConfig> InitializeCuttlefishConfiguration(
859860
}
860861
} else if (vhost_user_vsock_vec[instance_index] ==
861862
kVhostUserVsockModeTrue) {
862-
CHECK(tmp_config_obj.vm_manager() == VmmMode::kCrosvm)
863-
<< "For now, only crosvm supports vhost_user_vsock";
863+
CF_EXPECT_EQ(tmp_config_obj.vm_manager(), VmmMode::kCrosvm,
864+
"For now, only crosvm supports vhost_user_vsock");
864865
instance.set_vhost_user_vsock(true);
865866
} else if (vhost_user_vsock_vec[instance_index] ==
866867
kVhostUserVsockModeFalse) {
867868
instance.set_vhost_user_vsock(false);
868869
} else {
869-
CHECK(false)
870-
<< "--vhost_user_vsock should be one of 'auto', 'true', 'false', but "
871-
<< vhost_user_vsock_vec[instance_index];
870+
return CF_ERRF(
871+
"--vhost_user_vsock should be one of 'auto', 'true', 'false', but "
872+
"got '{}'",
873+
vhost_user_vsock_vec[instance_index]);
872874
}
873875

874876
if (use_random_serial_vec[instance_index]) {
@@ -1197,10 +1199,12 @@ Result<CuttlefishConfig> InitializeCuttlefishConfiguration(
11971199
// streaming, webrtc setup
11981200
instance.set_webrtc_assets_dir(webrtc_assets_dir_vec[instance_index]);
11991201

1200-
auto tcp_range = ParsePortRange(tcp_port_range_vec[instance_index]);
1202+
std::pair<uint16_t, uint16_t> tcp_range =
1203+
CF_EXPECT(ParsePortRange(tcp_port_range_vec[instance_index]));
12011204
instance.set_webrtc_tcp_port_range(tcp_range);
12021205

1203-
auto udp_range = ParsePortRange(udp_port_range_vec[instance_index]);
1206+
std::pair<uint16_t, uint16_t> udp_range =
1207+
CF_EXPECT(ParsePortRange(udp_port_range_vec[instance_index]));
12041208
instance.set_webrtc_udp_port_range(udp_range);
12051209

12061210
// end of streaming, webrtc setup

0 commit comments

Comments
 (0)