From ece486d0c80011232c92ef0deabe58e2f1387f17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthieu=20Berthom=C3=A9?= Date: Sun, 9 Oct 2022 18:53:35 +0200 Subject: [PATCH] error out when no branches left --- src/branches.cpp | 5 +---- tests/tests.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/branches.cpp b/src/branches.cpp index c8765d296..d5a57e3df 100644 --- a/src/branches.cpp +++ b/src/branches.cpp @@ -80,11 +80,8 @@ namespace l uint64_t offset; offset = s_.find_first_not_of("+<>-="); - if(offset > 1) - offset = 2; + *values_ = ((offset != std::string::npos) ? s_.substr(offset) : ""); *instr_ = s_.substr(0,offset); - if(offset != std::string::npos) - *values_ = s_.substr(offset); } static diff --git a/tests/tests.cpp b/tests/tests.cpp index 98e1ca963..1a667f553 100644 --- a/tests/tests.cpp +++ b/tests/tests.cpp @@ -164,6 +164,16 @@ test_config_update_branches() TEST_CHECK(b.to_string() == "/dir=RW"); TEST_CHECK(b.from_string("/dir") == 0); TEST_CHECK(b.to_string() == "/dir=RW"); + + // error out when no branches left + TEST_CHECK(b.from_string("=/dir") == 0); + TEST_CHECK(b.from_string("-/dir") < 0); + TEST_CHECK(b.from_string("-<") < 0); + TEST_CHECK(b.from_string("->") < 0); + + // error out when setting empty branches + TEST_CHECK(b.from_string("=") < 0); + TEST_CHECK(b.from_string("") < 0); } void