From 528617f6372e8bd248216fdd410d948449428be0 Mon Sep 17 00:00:00 2001 From: PANFACTORY Date: Sat, 1 Oct 2022 07:27:47 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E5=A4=B1?= =?UTF-8?q?=E6=95=97=E6=99=82=E3=81=AE=E8=A9=B3=E7=B4=B0=E3=82=92=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/cmake.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index ffb483f..692098f 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -26,4 +26,4 @@ jobs: - name: Test working-directory: ${{github.workspace}}/build - run: ctest -C ${{env.BUILD_TYPE}} + run: ctest -C ${{env.BUILD_TYPE}} --rerun-failed --output-on-failure From 43285d188d0b41e2213776515bdb74cd441e555e Mon Sep 17 00:00:00 2001 From: PANFACTORY Date: Sat, 1 Oct 2022 07:47:46 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=E5=AD=97=E5=8F=A5=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E5=99=A8=E3=81=AE=E4=BE=8B=E5=A4=96=E6=99=82=E3=81=ABstr?= =?UTF-8?q?=E3=81=AE=E5=86=85=E5=AE=B9=E3=82=92=E5=87=BA=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lexer.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lexer.h b/src/lexer.h index af94865..771b08b 100644 --- a/src/lexer.h +++ b/src/lexer.h @@ -73,6 +73,7 @@ namespace JsonParser { } str = str.substr(0, str.find_last_not_of(" \f\t\v\r\n") + 1); if (!std::regex_match(str, std::regex("-?(0|[1-9]\\d*)(\\.\\d+)?(e[-+](0|[1-9]\\d*)(\\.\\d+)?)?"))) { + std::cout << str << std::endl; throw std::runtime_error("At LexicalAnalyzer(): \"str\" is not a number."); } chs.push_back(str); @@ -90,6 +91,7 @@ namespace JsonParser { } str = str.substr(0, str.find_last_not_of(" \f\t\v\r\n") + 1); if (str != "true" && str != "false" && str != "null") { + std::cout << str << std::endl; throw std::runtime_error("At LexicalAnalyzer(): \"str\" is neither true, false nor null."); } chs.push_back(str); From ea6e51ee04065b0095b0aa41e3f73f49cbab6df8 Mon Sep 17 00:00:00 2001 From: PANFACTORY Date: Sat, 1 Oct 2022 08:04:22 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=81=AE?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/lexer_test.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/lexer_test.cpp b/test/lexer_test.cpp index 4f11001..8d41dce 100644 --- a/test/lexer_test.cpp +++ b/test/lexer_test.cpp @@ -39,12 +39,36 @@ TEST(JsonParserTest, LexicalHappyTest6) { ASSERT_EQ(JsonParser::Lexer(ss).size(), 17); } +TEST(JsonParserTest, LexicalHappyTest6_1) { + std::stringstream ss; + ss << R"({ "pi": 5.14 })"; + ASSERT_EQ(JsonParser::Lexer(ss).size(), 5); +} + +TEST(JsonParserTest, LexicalHappyTest6_2) { + std::stringstream ss; + ss << R"({ "pi": 35.14 })"; + ASSERT_EQ(JsonParser::Lexer(ss).size(), 5); +} + TEST(JsonParserTest, LexicalHappyTest7) { std::stringstream ss; ss << R"({ "name": null, "active_flag": true, "delete_flag": false })"; ASSERT_EQ(JsonParser::Lexer(ss).size(), 13); } +TEST(JsonParserTest, LexicalHappyTest7_1) { + std::stringstream ss; + ss << R"({ "active_flag": true, "delete_flag": false })"; + ASSERT_EQ(JsonParser::Lexer(ss).size(), 9); +} + +TEST(JsonParserTest, LexicalHappyTest7_2) { + std::stringstream ss; + ss << R"({ "delete_flag": false })"; + ASSERT_EQ(JsonParser::Lexer(ss).size(), 5); +} + TEST(JsonParserTest, LexicalHappyTest8) { std::stringstream ss; ss << R"({ "user_info": { "user_id": "A1234567", "user_name": "Yamada Taro" } })"; From 66723edce8c7f799564715a682d30e4e8c4bb83c Mon Sep 17 00:00:00 2001 From: PANFACTORY Date: Sat, 1 Oct 2022 08:31:40 +0900 Subject: [PATCH 4/5] =?UTF-8?q?string=E5=9E=8B=E3=82=B3=E3=83=B3=E3=82=B9?= =?UTF-8?q?=E3=83=88=E3=83=A9=E3=82=AF=E3=82=BF=E3=81=AE=E5=88=A9=E7=94=A8?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lexer.h | 6 ++---- test/lexer_test.cpp | 24 ------------------------ 2 files changed, 2 insertions(+), 28 deletions(-) diff --git a/src/lexer.h b/src/lexer.h index 771b08b..d6a2402 100644 --- a/src/lexer.h +++ b/src/lexer.h @@ -65,7 +65,7 @@ namespace JsonParser { case '8': case '9': { - std::string str(&ch); + std::string str(1, ch); ch = ss.get(); while (!ss.eof() && ch != '}' && ch != ',' && ch != ']') { str += ch; @@ -73,7 +73,6 @@ namespace JsonParser { } str = str.substr(0, str.find_last_not_of(" \f\t\v\r\n") + 1); if (!std::regex_match(str, std::regex("-?(0|[1-9]\\d*)(\\.\\d+)?(e[-+](0|[1-9]\\d*)(\\.\\d+)?)?"))) { - std::cout << str << std::endl; throw std::runtime_error("At LexicalAnalyzer(): \"str\" is not a number."); } chs.push_back(str); @@ -83,7 +82,7 @@ namespace JsonParser { case 'f': case 'n': { - std::string str(&ch); + std::string str(1, ch); ch = ss.get(); while (!ss.eof() && ch != '}' && ch != ',' && ch != ']') { str += ch; @@ -91,7 +90,6 @@ namespace JsonParser { } str = str.substr(0, str.find_last_not_of(" \f\t\v\r\n") + 1); if (str != "true" && str != "false" && str != "null") { - std::cout << str << std::endl; throw std::runtime_error("At LexicalAnalyzer(): \"str\" is neither true, false nor null."); } chs.push_back(str); diff --git a/test/lexer_test.cpp b/test/lexer_test.cpp index 8d41dce..4f11001 100644 --- a/test/lexer_test.cpp +++ b/test/lexer_test.cpp @@ -39,36 +39,12 @@ TEST(JsonParserTest, LexicalHappyTest6) { ASSERT_EQ(JsonParser::Lexer(ss).size(), 17); } -TEST(JsonParserTest, LexicalHappyTest6_1) { - std::stringstream ss; - ss << R"({ "pi": 5.14 })"; - ASSERT_EQ(JsonParser::Lexer(ss).size(), 5); -} - -TEST(JsonParserTest, LexicalHappyTest6_2) { - std::stringstream ss; - ss << R"({ "pi": 35.14 })"; - ASSERT_EQ(JsonParser::Lexer(ss).size(), 5); -} - TEST(JsonParserTest, LexicalHappyTest7) { std::stringstream ss; ss << R"({ "name": null, "active_flag": true, "delete_flag": false })"; ASSERT_EQ(JsonParser::Lexer(ss).size(), 13); } -TEST(JsonParserTest, LexicalHappyTest7_1) { - std::stringstream ss; - ss << R"({ "active_flag": true, "delete_flag": false })"; - ASSERT_EQ(JsonParser::Lexer(ss).size(), 9); -} - -TEST(JsonParserTest, LexicalHappyTest7_2) { - std::stringstream ss; - ss << R"({ "delete_flag": false })"; - ASSERT_EQ(JsonParser::Lexer(ss).size(), 5); -} - TEST(JsonParserTest, LexicalHappyTest8) { std::stringstream ss; ss << R"({ "user_info": { "user_id": "A1234567", "user_name": "Yamada Taro" } })"; From 5a5ba03d52766a228330441e7b1da2aa98a3ec0e Mon Sep 17 00:00:00 2001 From: PANFACTORY Date: Sat, 1 Oct 2022 08:47:53 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=E3=83=96=E3=83=A9=E3=83=B3=E3=83=81?= =?UTF-8?q?=E5=90=8D=E7=AD=89=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/cmake.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 692098f..ce84fc5 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -2,16 +2,16 @@ name: CMake on: push: - branches: [ "master" ] + branches: [ "main" ] pull_request: - branches: [ "master" ] + branches: [ "main" ] workflow_dispatch: env: BUILD_TYPE: Release jobs: - build: + test: timeout-minutes: 10 runs-on: ubuntu-latest