From 93204f6985faa7a471de6eec0d94751b6d8b5f66 Mon Sep 17 00:00:00 2001
From: Jaewon Choi <jaewon.james.choi@gmail.com>
Date: Sat, 16 Sep 2017 23:39:18 +0900
Subject: [PATCH] Add testing functionality

---
 include/utils.h                   |  7 +++++++
 src/main.c                        |  4 ++++
 src/utils.c                       |  7 +++++++
 tests/src/command_parsing_test.cc | 27 +++++++++++++++++++++++++--
 4 files changed, 43 insertions(+), 2 deletions(-)
 create mode 100644 include/utils.h
 create mode 100644 src/main.c
 create mode 100644 src/utils.c

diff --git a/include/utils.h b/include/utils.h
new file mode 100644
index 0000000..57345da
--- /dev/null
+++ b/include/utils.h
@@ -0,0 +1,7 @@
+#ifndef MYSH_UTILS_H_
+#define MYSH_UTILS_H_
+
+void mysh_parse_command(const char* command,
+                        int *argc, char** argv);
+
+#endif // MYSH_UTILS_H_
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 0000000..f8b643a
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,4 @@
+int main()
+{
+  return 0;
+}
diff --git a/src/utils.c b/src/utils.c
new file mode 100644
index 0000000..681ab85
--- /dev/null
+++ b/src/utils.c
@@ -0,0 +1,7 @@
+#include "utils.h"
+
+void mysh_parse_command(const char* command,
+                        int *argc, char** argv)
+{
+  // TODO: Fill this!
+}
diff --git a/tests/src/command_parsing_test.cc b/tests/src/command_parsing_test.cc
index f876538..b7822c6 100644
--- a/tests/src/command_parsing_test.cc
+++ b/tests/src/command_parsing_test.cc
@@ -1,5 +1,28 @@
+extern "C" {
+#include "utils.h"
+}
+
 #include "gtest/gtest.h"
 
-TEST(CommandParsingTest, Basic) {
-  EXPECT_EQ(1, 1);
+#include <stdlib.h>
+
+TEST(CommandParsingTest, BasicCommand) {
+  char** argv;
+  int argc = -1;
+
+  argv = (char**)malloc(2);
+  for (int i = 0; i < 2; ++i) {
+    argv[i] = (char*)malloc(512);
+  }
+
+  mysh_parse_command("cd test", &argc, argv);
+
+  EXPECT_EQ(argc, 2);
+  EXPECT_STREQ(argv[0], "cd");
+  EXPECT_STREQ(argv[1], "test");
+
+  for (int i = 0; i < 2; ++i) {
+    free(argv[i]);
+  }
+  free(argv);
 }
-- 
GitLab