diff options
Diffstat (limited to 'gtest')
| -rw-r--r-- | gtest/CMakeLists.txt | 8 | ||||
| -rw-r--r-- | gtest/conf/default.conf | 123 | ||||
| -rw-r--r-- | gtest/gtest_hos_close_fd.cpp | 78 | ||||
| -rw-r--r-- | gtest/gtest_hos_create_bucket.cpp | 21 | ||||
| -rw-r--r-- | gtest/gtest_hos_get_instance.cpp | 32 | ||||
| -rw-r--r-- | gtest/gtest_hos_init_instance.cpp | 59 | ||||
| -rw-r--r-- | gtest/gtest_hos_open_fd.cpp | 111 | ||||
| -rw-r--r-- | gtest/gtest_hos_shutdown_instance.cpp | 49 | ||||
| -rw-r--r-- | gtest/gtest_hos_upload_buff.cpp | 87 | ||||
| -rw-r--r-- | gtest/gtest_hos_upload_file.cpp | 106 | ||||
| -rw-r--r-- | gtest/gtest_hos_verify_bucket.cpp | 51 | ||||
| -rw-r--r-- | gtest/gtest_hos_write.cpp | 491 |
12 files changed, 1181 insertions, 35 deletions
diff --git a/gtest/CMakeLists.txt b/gtest/CMakeLists.txt index 174a7081..8cd3ab35 100644 --- a/gtest/CMakeLists.txt +++ b/gtest/CMakeLists.txt @@ -1,12 +1,14 @@ cmake_minimum_required(VERSION 3.0) project(gtest_hos_client) -#aux_source_directory(. SRCS) +aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} SRCS) include_directories("/opt/MESA/include") link_directories("/opt/MESA/lib") #link_libraries(hos-client-cpp gtest gtest_main pthread) -add_definitions(-g -W -Wall) -add_executable(gtest_hos_client gtest_hos_init_instance.cpp) +add_definitions(-g -W -Wall -std=c++11) +#add_executable(gtest_hos_client gtest_hos_init_instance.cpp gtest_hos_get_instance.cpp) +#add_executable(gtest_hos_client gtest_hos_write.cpp) +add_executable(gtest_hos_client ${SRCS}) target_link_libraries(gtest_hos_client hos-client-cpp gtest gtest_main pthread) diff --git a/gtest/conf/default.conf b/gtest/conf/default.conf new file mode 100644 index 00000000..f2446c97 --- /dev/null +++ b/gtest/conf/default.conf @@ -0,0 +1,123 @@ +[hos_default_conf] +hos_serverip=192.168.44.12 +hos_serverport=9098 +hos_accesskeyid="default" +hos_secretkey="default" +hos_log_path="./hoslog" +#default +hos_log_level=30 +#default +hos_poolsize=10 +#default +hos_thread_sum=32 +#default +hos_cache_size=102400 +#default +hos_cache_count=10 +#default +hos_fd_live_time_ms=1000 +#default +hos_fs2_serverip=127.0.0.1 +hos_fs2_serverport=10086 +hos_fs2_path="./log/hos_fs2_log" +#default +hos_fs2_format=0 +#defaul + +[hos_sync_conf] +hos_serverip=192.168.44.12 +hos_serverport=9098 +hos_accesskeyid="default" +hos_secretkey="default" +hos_log_path="./log/hoslog" +#default +hos_log_level=30 +#default +hos_poolsize=0 +#default +hos_thread_sum=32 +#default +hos_cache_size=102400 +#default +hos_cache_count=10 +#default +hos_fd_live_time_ms=1000 +#default +hos_fs2_serverip=127.0.0.1 +hos_fs2_serverport=10086 +hos_fs2_path="./log/hos_fs2_log" +#default +hos_fs2_format=0 +#default + +[hos_no_fs2_conf] +hos_serverip=192.168.44.12 +hos_serverport=9098 +hos_accesskeyid="default" +hos_secretkey="default" +hos_log_path="./log/hoslog" +#default +hos_log_level=30 +#default +hos_poolsize=10 +#default +hos_thread_sum=32 +#default +hos_cache_size=102400 +#default +hos_cache_count=10 +#default +hos_fd_live_time_ms=1000 +#default +hos_fs2_path="./log/hos_fs2_log" +#default +hos_fs2_format=0 +#default + +[hos_default_conf] +hos_log_path="./log/hoslog" +#default +hos_log_level=30 +#default +hos_poolsize=10 +#default +hos_thread_sum=32 +#default +hos_cache_size=102400 +#default +hos_cache_count=10 +#default +hos_fd_live_time_ms=1000 +#default +hos_fs2_serverip=127.0.0.1 +hos_fs2_serverport=10086 +hos_fs2_path="./log/hos_fs2_log" +#default +hos_fs2_format=0 +#default + +[hos_error_server_conf] +hos_serverip=192.168.40.146 +hos_serverport=9098 +hos_accesskeyid="default" +hos_secretkey="default" +hos_log_path="./log/hoslog" +#default +hos_log_level=30 +#default +hos_poolsize=0 +#default +hos_thread_sum=32 +#default +hos_cache_size=102400 +#default +hos_cache_count=10 +#default +hos_fd_live_time_ms=1000 +#default +hos_fs2_serverip=127.0.0.1 +hos_fs2_serverport=10086 +hos_fs2_path="./log/hos_fs2_log" +#default +hos_fs2_format=0 +#default diff --git a/gtest/gtest_hos_close_fd.cpp b/gtest/gtest_hos_close_fd.cpp new file mode 100644 index 00000000..f6172030 --- /dev/null +++ b/gtest/gtest_hos_close_fd.cpp @@ -0,0 +1,78 @@ +#include <aws/external/gtest.h> +#include "hos_client.h" + +#define HOS_CONF "../conf/default.conf" +#define HOS_BUCKET "hos_test_bucket" + +TEST(hos_close_fd, normal) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + size_t fd = hos_open_fd(HOS_BUCKET, "object", NULL, NULL, 0, BUFF_MODE); + EXPECT_EQ(fd, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_close_fd(fd, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_close_fd, paramer_error) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int fd = hos_open_fd(NULL, "object", NULL, NULL, 0, BUFF_MODE); + EXPECT_EQ(fd, HOS_PARAMETER_ERROR); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_close_fd(fd, 0); + EXPECT_EQ(ret, HOS_PARAMETER_ERROR); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_close_fd, not_init_instance) +{ + int ret = hos_close_fd(1,1); + EXPECT_EQ(ret, HOS_INSTANCE_NOT_INIT); +} + +TEST(hos_close_fd, fd_not_exits) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_close_fd(7, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +}
\ No newline at end of file diff --git a/gtest/gtest_hos_create_bucket.cpp b/gtest/gtest_hos_create_bucket.cpp deleted file mode 100644 index ff6d1fdb..00000000 --- a/gtest/gtest_hos_create_bucket.cpp +++ /dev/null @@ -1,21 +0,0 @@ -/************************************************************************* - > File Name: gtest_hos_create_bucket.cpp - > Author: pxz - > Created Time: Tue 29 Sep 2020 10:32:14 AM CST - ************************************************************************/ -#include <gtest/gtest.h> -#include "hos_client.h" - -TEST(hos_create_bucket, normal) -{ - hos_client_handle handle = hos_client_create("http://192.168.40.151/hos/", "default", "default", 1); - int ret = hos_create_bucket(handle, "mybucket"); - EXPECT(HOS_CLIENT_OK, ret); -} - -TEST(hos_create_bucket, parameter_error) -{ - hos_client_handle handle = hos_client_create("http://192.168.40.151/hos/", "default", "default", 1); - int ret = hos_create_bucket(handle, NULL); - EXPECT(HOS_CLIENT_OK, HOS_PARAMETER_ERROR); -} diff --git a/gtest/gtest_hos_get_instance.cpp b/gtest/gtest_hos_get_instance.cpp new file mode 100644 index 00000000..4639ea0b --- /dev/null +++ b/gtest/gtest_hos_get_instance.cpp @@ -0,0 +1,32 @@ +#include <aws/external/gtest.h> +#include "hos_client.h" + +#define HOS_CONF "../conf/default.conf" +#define HOS_BUCKET "hos_test_bucket" + +TEST(hos_get_instance, normal) +{ + hos_instance hos_instance = hos_get_instance(); + EXPECT_EQ(hos_instance->result, false); + hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 1, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + hos_instance = hos_get_instance(); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + hos_shutdown_instance(); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + hos_shutdown_instance(); + EXPECT_EQ(hos_instance->result, false); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + diff --git a/gtest/gtest_hos_init_instance.cpp b/gtest/gtest_hos_init_instance.cpp index 54b9bc27..7d1fdaff 100644 --- a/gtest/gtest_hos_init_instance.cpp +++ b/gtest/gtest_hos_init_instance.cpp @@ -6,20 +6,69 @@ #include <aws/external/gtest.h> #include "hos_client.h" +#define HOS_CONF "../conf/default.conf" +#define HOS_BUCKET "hos_test_bucket" + TEST(hos_init_instance, normal) { - hos_instance hos_instance = hos_init_instance("../conf/default.conf", "hos_default_conf", 1, "hos_test_bucket"); + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 1, HOS_BUCKET); EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); int ret = hos_shutdown_instance(); EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_init_instance, param_error) +{ + hos_instance hos_instance = hos_init_instance(NULL, "hos_default_conf", 1, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, false); + EXPECT_EQ(hos_instance->error_code, HOS_PARAMETER_ERROR); + EXPECT_STREQ(hos_instance->error_message, "param error:conf_path:(null), module:hos_default_conf, thread_num:1, bucket:hos_test_bucket"); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); } -TEST(hos_open_fd, buffer) +TEST(hos_init_instance, no_fs2) { - hos_instance hos_instance = hos_init_instance("../conf/default.conf", "hos_default_conf", 1, "hos_test_bucket"); + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_no_fs2_conf", 1, HOS_BUCKET); EXPECT_EQ(hos_instance->result, true); - int fd = hos_open_fd("hos_test_bucket", "hos_test_object", NULL, NULL, 0, BUFF_MODE); - EXPECT_EQ(fd, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); int ret = hos_shutdown_instance(); EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_init_instance, bucket_not_exits) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 1, "hos_bucket_not_exits"); + EXPECT_EQ(hos_instance->result, false); + EXPECT_EQ(hos_instance->error_code, HOS_BUCKET_NOT_EXIST); + EXPECT_STREQ(hos_instance->error_message, "bucket:hos_bucket_not_exits not exits."); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_init_instance, conf_error) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_error_conf", 1, "hos_bucket_not_exits"); + EXPECT_EQ(hos_instance->result, false); + EXPECT_EQ(hos_instance->error_code, HOS_CONF_ERROR); + EXPECT_STREQ(hos_instance->error_message, "hos param error:hos ip:, hos port:0, accesskeyid:, secretkey:"); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_init_instance, server_conn_failed) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_error_server_conf", 1, "hos_bucket_not_exits"); + EXPECT_EQ(hos_instance->result, false); + EXPECT_EQ(hos_instance->error_code, NETWORK_CONNECTION); + EXPECT_STREQ(hos_instance->error_message, "curlCode: 7, Couldn't connect to server"); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); }
\ No newline at end of file diff --git a/gtest/gtest_hos_open_fd.cpp b/gtest/gtest_hos_open_fd.cpp new file mode 100644 index 00000000..7b0bbbed --- /dev/null +++ b/gtest/gtest_hos_open_fd.cpp @@ -0,0 +1,111 @@ +#include <aws/external/gtest.h> +#include "hos_client.h" + +#define HOS_CONF "../conf/default.conf" +#define HOS_BUCKET "hos_test_bucket" + +TEST(hos_open_fd, normal) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + size_t fd = hos_open_fd(HOS_BUCKET, "object", NULL, NULL, 0, BUFF_MODE); + EXPECT_EQ(fd, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + size_t fd1 = hos_open_fd(HOS_BUCKET, "object", NULL, NULL, 1, BUFF_MODE); + EXPECT_EQ(fd1, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_close_fd(fd, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_close_fd(fd1, 1); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_open_fd, paramer_error) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int fd = hos_open_fd(NULL, "object", NULL, NULL, 0, BUFF_MODE); + EXPECT_EQ(fd, HOS_PARAMETER_ERROR); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_open_fd, over_threadnums) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int fd = hos_open_fd(HOS_CONF, "object", NULL, NULL, 3, BUFF_MODE); + EXPECT_EQ(fd, HOS_PARAMETER_ERROR); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_open_fd, fd_not_enough) +{ + int i = 0, fd = 0; + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + for (i = 0; i < 65533; i++) + { + fd = hos_open_fd(HOS_CONF, "object", NULL, NULL, 0, BUFF_MODE); + EXPECT_EQ(fd, i+3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + } + fd = hos_open_fd(HOS_CONF, "object", NULL, NULL, 0, BUFF_MODE); + EXPECT_EQ(fd, HOS_FD_NOT_ENOUGH); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_open_fd, not_init_instance) +{ + int fd = hos_open_fd(HOS_CONF, "object", NULL, NULL, 0, BUFF_MODE); + EXPECT_EQ(fd, HOS_INSTANCE_NOT_INIT); +}
\ No newline at end of file diff --git a/gtest/gtest_hos_shutdown_instance.cpp b/gtest/gtest_hos_shutdown_instance.cpp new file mode 100644 index 00000000..7cdd1ec6 --- /dev/null +++ b/gtest/gtest_hos_shutdown_instance.cpp @@ -0,0 +1,49 @@ +/************************************************************************* + > File Name: gtest_hos_cleint_create.cpp + > Author: pxz + > Created Time: Tue 29 Sep 2020 10:20:49 AM CST + ************************************************************************/ +#include <aws/external/gtest.h> +#include "hos_client.h" + +#define HOS_CONF "../conf/default.conf" +#define HOS_BUCKET "hos_test_bucket" + +TEST(hos_shutdown_instance, normal) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 1, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_shutdown_instance, no_init) +{ + int ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); +} + +TEST(hos_shutdown_instance, shutdown_more) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 1, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} diff --git a/gtest/gtest_hos_upload_buff.cpp b/gtest/gtest_hos_upload_buff.cpp new file mode 100644 index 00000000..3d4e8733 --- /dev/null +++ b/gtest/gtest_hos_upload_buff.cpp @@ -0,0 +1,87 @@ +#include <aws/external/gtest.h> +#include "hos_client.h" + +#define HOS_CONF "../conf/default.conf" +#define HOS_BUCKET "hos_test_bucket" +#define HOS_BUFF "This is a googletest" + +static void hos_callback(bool result, const char *bucket, const char *object, const char *error, void *userdata) +{ + SUCCEED(); + EXPECT_EQ(result, true); + EXPECT_STREQ(bucket, HOS_BUCKET); + EXPECT_STREQ(object, (char *)userdata); + EXPECT_STREQ(error, NULL); +} + +static void hos_bucket_not_exits_cb(bool result, const char *bucket, const char *object, const char *error, void *userdata) +{ + SUCCEED(); + EXPECT_EQ(result, false); + EXPECT_STREQ(bucket, "bucket_not_exits"); + EXPECT_STREQ(object, (char *)userdata); + EXPECT_STREQ(error, "The specified bucket does not exist."); +} + +TEST(hos_upload_buff, normal) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_upload_buf(HOS_BUCKET, "object", HOS_BUFF, strlen(HOS_BUFF), hos_callback, (void *)"object", 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_upload_buff, bucket_not_exits) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_upload_buf("bucket_not_exits", "object", HOS_BUFF, strlen(HOS_BUFF), hos_bucket_not_exits_cb, (void *)"object", 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_upload_buff, param_error) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_upload_buf(NULL, "object", HOS_BUFF, strlen(HOS_BUFF), hos_callback, (void *)"object", 0); + EXPECT_EQ(ret, HOS_PARAMETER_ERROR); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_upload_buff, not_init_instance) +{ + int ret = hos_upload_buf(HOS_BUCKET, "object", HOS_BUFF, strlen(HOS_BUFF), hos_callback, (void *)"object", 0); + EXPECT_EQ(ret, HOS_INSTANCE_NOT_INIT); +} diff --git a/gtest/gtest_hos_upload_file.cpp b/gtest/gtest_hos_upload_file.cpp new file mode 100644 index 00000000..2049b5df --- /dev/null +++ b/gtest/gtest_hos_upload_file.cpp @@ -0,0 +1,106 @@ +#include <aws/external/gtest.h> +#include "hos_client.h" + +#define HOS_CONF "../conf/default.conf" +#define HOS_BUCKET "hos_test_bucket" +#define HOS_BUFF "Makefile" + +static void hos_callback(bool result, const char *bucket, const char *object, const char *error, void *userdata) +{ + SUCCEED(); + EXPECT_EQ(result, true); + EXPECT_STREQ(bucket, HOS_BUCKET); + EXPECT_STREQ(object, (char *)userdata); + EXPECT_STREQ(error, NULL); +} + +static void hos_bucket_not_exits_cb(bool result, const char *bucket, const char *object, const char *error, void *userdata) +{ + SUCCEED(); + EXPECT_EQ(result, false); + EXPECT_STREQ(bucket, HOS_BUCKET); + EXPECT_STREQ(object, (char *)userdata); + EXPECT_STREQ(error, "The specified bucket does not exist."); +} + +TEST(hos_upload_file, normal) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_upload_file(HOS_BUCKET, HOS_BUFF, hos_callback, (void *)HOS_BUFF, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_upload_file, param_error) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_upload_file(NULL, "object", hos_callback, (void *)"object", 0); + EXPECT_EQ(ret, HOS_PARAMETER_ERROR); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_upload_file, file_not_exits) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_upload_file(HOS_BUCKET, "file_not_exits", hos_callback, (void *)"object", 0); + EXPECT_EQ(ret, HOS_FILE_NOT_EXIST); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_upload_file, not_init_instance) +{ + int ret = hos_upload_file(HOS_BUCKET, HOS_BUFF, hos_callback, (void *)"object", 0); + EXPECT_EQ(ret, HOS_INSTANCE_NOT_INIT); +} + +TEST(hos_upload_file, bucket_not_exits) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_upload_file(HOS_BUCKET, HOS_CONF, hos_bucket_not_exits_cb, (void *)HOS_CONF, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} diff --git a/gtest/gtest_hos_verify_bucket.cpp b/gtest/gtest_hos_verify_bucket.cpp index 456c4514..0a281193 100644 --- a/gtest/gtest_hos_verify_bucket.cpp +++ b/gtest/gtest_hos_verify_bucket.cpp @@ -3,15 +3,54 @@ > Author: pxz > Created Time: Tue 29 Sep 2020 10:32:14 AM CST ************************************************************************/ -#include <gtest/gtest.h> +#include <aws/external/gtest.h> #include "hos_client.h" +#define HOS_CONF "../conf/default.conf" +#define HOS_BUCKET "hos_test_bucket" + TEST(hos_verify_bucket, normal) { - int ret = -1; - hos_client_handle handle = hos_client_create("http://192.168.40.151/hos/", "default", "default", 1); - if (hos_create_bucket(handle, "mybcuket")) - ret = hos_verify_bucket(handle, "mybucket"); - EXPECT(HOS_CLIENT_OK, ret); + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 1, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + bool result = hos_verify_bucket(HOS_BUCKET); + EXPECT_EQ(result, true); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_verify_bucket, not_exits) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 1, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + bool result = hos_verify_bucket("hos_not_exits_bucket"); + EXPECT_EQ(result, false); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); } +TEST(hos_verify_bucket, no_instance) +{ + bool result = hos_verify_bucket("hos_not_exits_bucket"); + EXPECT_EQ(result, false); +} diff --git a/gtest/gtest_hos_write.cpp b/gtest/gtest_hos_write.cpp new file mode 100644 index 00000000..96602090 --- /dev/null +++ b/gtest/gtest_hos_write.cpp @@ -0,0 +1,491 @@ +#include <aws/external/gtest.h> +#include "hos_client.h" + +#define HOS_CONF "../conf/default.conf" +#define HOS_BUCKET "hos_test_bucket" +#define HOS_BUFF "This a googleTest" +#define HOS_FILE "../conf/default.conf" + +static void hos_callback(bool result, const char *bucket, const char *object, const char *error, void *userdata) +{ + SUCCEED(); + EXPECT_EQ(result, true); + EXPECT_STREQ(bucket, HOS_BUCKET); + EXPECT_STREQ(object, (char *)userdata); + EXPECT_STREQ(error, NULL); +} +static void hos_write_buff_cb(bool result, const char *bucket, const char *object, const char *error, void *userdata) +{ + SUCCEED(); + EXPECT_EQ(result, true); + EXPECT_STREQ(bucket, HOS_BUCKET); + EXPECT_STREQ(object, (char *)userdata); + EXPECT_STREQ(error, NULL); +} +static void hos_write_append_cb(bool result, const char *bucket, const char *object, const char *error, void *userdata) +{ + SUCCEED(); + EXPECT_EQ(result, true); + EXPECT_STREQ(bucket, HOS_BUCKET); + EXPECT_STREQ(object, (char *)userdata); + EXPECT_STREQ(error, NULL); +} +static void hos_write_file_cb(bool result, const char *bucket, const char *object, const char *error, void *userdata) +{ + SUCCEED(); + EXPECT_EQ(result, true); + EXPECT_STREQ(bucket, HOS_BUCKET); + EXPECT_STREQ(object, (char *)userdata); + EXPECT_STREQ(error, NULL); +} +static void hos_bucket_not_exits_cb(bool result, const char *bucket, const char *object, const char *error, void *userdata) +{ + SUCCEED(); + EXPECT_EQ(result, false); + EXPECT_STREQ(bucket, "bucket_not_exits"); + EXPECT_STREQ(object, (char *)userdata); + EXPECT_STREQ(error, "The specified bucket does not exist."); +} + +TEST(hos_write, normal) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 3, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + size_t fd = hos_open_fd(HOS_BUCKET, "object_buff", hos_write_buff_cb, (void *)"object_buff", 0, BUFF_MODE); + EXPECT_EQ(fd, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_write(fd, HOS_BUFF, strlen(HOS_BUFF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + size_t fd1 = hos_open_fd(HOS_BUCKET, "object_append", hos_write_append_cb, (void *)"object_append", 1, BUFF_MODE | APPEND_MODE); + EXPECT_EQ(fd1, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + ret = hos_write(fd1, HOS_BUFF, strlen(HOS_BUFF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_write(fd1, HOS_BUFF, strlen(HOS_BUFF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + size_t fd2 = hos_open_fd(HOS_BUCKET, "object_file", hos_write_file_cb, (void *)"object_file", 2, FILE_MODE); + EXPECT_EQ(fd2, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_write(fd2, HOS_FILE, strlen(HOS_CONF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + ret = hos_close_fd(fd, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_close_fd(fd1, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_close_fd(fd2, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_write, bucket_not_exits) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 3, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + size_t fd = hos_open_fd("bucket_not_exits", "object_buff", hos_bucket_not_exits_cb, (void *)"object_buff", 0, BUFF_MODE); + EXPECT_EQ(fd, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_write(fd, HOS_BUFF, strlen(HOS_BUFF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + size_t fd1 = hos_open_fd("bucket_not_exits", "object_append", hos_bucket_not_exits_cb, (void *)"object_append", 1, BUFF_MODE | APPEND_MODE); + EXPECT_EQ(fd1, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + ret = hos_write(fd1, HOS_BUFF, strlen(HOS_BUFF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_write(fd1, HOS_BUFF, strlen(HOS_BUFF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + size_t fd2 = hos_open_fd("bucket_not_exits", "object_file", hos_bucket_not_exits_cb, (void *)"object_file", 2, FILE_MODE); + EXPECT_EQ(fd2, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_write(fd2, HOS_FILE, strlen(HOS_CONF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + ret = hos_close_fd(fd, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_close_fd(fd1, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_close_fd(fd2, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_write, sync_mode) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_sync_conf", 3, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + size_t fd = hos_open_fd(HOS_BUCKET, "object_buff", NULL, NULL, 0, BUFF_MODE); + EXPECT_EQ(fd, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_write(fd, HOS_BUFF, strlen(HOS_BUFF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + size_t fd1 = hos_open_fd(HOS_BUCKET, "object_append", NULL, NULL, 1, BUFF_MODE | APPEND_MODE); + EXPECT_EQ(fd1, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + ret = hos_write(fd1, HOS_BUFF, strlen(HOS_BUFF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_write(fd1, HOS_BUFF, strlen(HOS_BUFF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + size_t fd2 = hos_open_fd(HOS_BUCKET, "object_buff", NULL, NULL, 2, FILE_MODE); + EXPECT_EQ(fd2, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_write(fd2, HOS_FILE, strlen(HOS_BUFF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + ret = hos_close_fd(fd, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_close_fd(fd1, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_close_fd(fd2, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_write, sync_mode_bucket_not_exits) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_sync_conf", 3, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + size_t fd = hos_open_fd(HOS_BUCKET, "object_buff", NULL, NULL, 0, BUFF_MODE); + EXPECT_EQ(fd, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_write(fd, HOS_BUFF, strlen(HOS_CONF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + size_t fd1 = hos_open_fd(HOS_BUCKET, "object_append", NULL, NULL, 1, BUFF_MODE | APPEND_MODE); + EXPECT_EQ(fd1, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + ret = hos_write(fd1, HOS_BUFF, strlen(HOS_CONF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_write(fd1, HOS_BUFF, strlen(HOS_CONF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + size_t fd2 = hos_open_fd(HOS_BUCKET, "object_buff", NULL, NULL, 2, FILE_MODE); + EXPECT_EQ(fd2, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_write(fd2, HOS_FILE, strlen(HOS_CONF), 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + ret = hos_close_fd(fd, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_close_fd(fd1, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_close_fd(fd2, 0); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_write, paramer_error) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int fd = hos_open_fd(NULL, "object", hos_callback, NULL, 0, BUFF_MODE); + EXPECT_EQ(fd, HOS_PARAMETER_ERROR); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_write(0, HOS_BUFF, strlen(HOS_CONF), 0); + EXPECT_EQ(ret, HOS_PARAMETER_ERROR); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_write, fd_not_find) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_write(3, HOS_BUFF, strlen(HOS_CONF), 0); + EXPECT_EQ(ret, HOS_HASH_NOT_FIND); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_write, file_not_exit) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int fd = hos_open_fd(HOS_CONF, "object", NULL, NULL, 0, FILE_MODE); + EXPECT_EQ(fd, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_write(3, "not_exit_file", strlen(HOS_CONF), 0); + EXPECT_EQ(ret, HOS_FILE_NOT_EXIST); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_write, over_threadnums) +{ + hos_instance hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 2, HOS_BUCKET); + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int fd = hos_open_fd(HOS_CONF, "object", NULL, NULL, 0, BUFF_MODE); + EXPECT_EQ(fd, 3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + int ret = hos_write(3, HOS_BUFF, strlen(HOS_CONF), 6); + EXPECT_EQ(ret, HOS_PARAMETER_ERROR); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); +} + +TEST(hos_write, not_init_instance) +{ + int ret = hos_write(3, HOS_BUFF, strlen(HOS_CONF), 0); + EXPECT_EQ(ret, HOS_INSTANCE_NOT_INIT); +} +static void *hos_function(void *ptr) +{ + #define HOS_FD_NUMS_LOCAL 20 + //int thread_id = (int)ptr; + size_t thread_id = reinterpret_cast<size_t>(ptr); + hos_instance hos_instance = NULL; + int i = 0; + int fd[HOS_FD_NUMS_LOCAL] = {0}; + char object[HOS_FD_NUMS_LOCAL][1024]; + int ret = 0; + + { + hos_instance = hos_get_instance(); + if (hos_instance->result == false) + { + hos_instance = hos_init_instance(HOS_CONF, "hos_default_conf", 32, HOS_BUCKET); + } + } + EXPECT_EQ(hos_instance->result, true); + EXPECT_EQ(hos_instance->error_code, HOS_CLIENT_OK); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + + for (i = 0; i < 20; i++) + { + snprintf(object[i], 1024, "object_%lu_%d", thread_id, i); + fd[i] = hos_open_fd(HOS_CONF, object[i], hos_callback, object[i], 0, BUFF_MODE | APPEND_MODE); + EXPECT_EQ(fd[i], i+3); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + } + + for (i = 0; i < 20; i++) + { + ret = hos_write(fd[i], HOS_BUFF, strlen(HOS_BUFF), i); + EXPECT_EQ(ret, HOS_CLIENT_OK); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + } + + for (i = 0; i < 20; i++) + { + ret = hos_close_fd(fd[i], i); + EXPECT_EQ(ret, 0); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, "http://192.168.44.12:9098/hos/"); + } + + ret = hos_shutdown_instance(); + EXPECT_EQ(ret, 0); + EXPECT_EQ(hos_instance->error_code, 0); + EXPECT_STREQ(hos_instance->error_message, ""); + EXPECT_STREQ(hos_instance->hos_url_prefix, NULL); + + pthread_exit(NULL); +#undef HOS_FD_NUMS_LOCAL +} + +TEST(hos_write, mutil_thread) +{ + pthread_t thread_num[32]; + + for (size_t i = 0; i < 32; i++) + { + pthread_create(&thread_num[i], NULL, hos_function, (void *)i); + } +}
\ No newline at end of file |
