diff --git a/test/unittest/cpp_code_emitter_test/BUILD.gn b/test/unittest/cpp_code_emitter_test/BUILD.gn index 967884f1313411ebc018d788d111c3a02f762546..28bfc0103aaee215ae9916a8597d435c7d46581e 100644 --- a/test/unittest/cpp_code_emitter_test/BUILD.gn +++ b/test/unittest/cpp_code_emitter_test/BUILD.gn @@ -23,6 +23,7 @@ common_sources = [ "${IDL_DIR}/codegen/code_emitter.cpp", "${IDL_DIR}/codegen/code_generator.cpp", "${IDL_DIR}/codegen/cpp_code_emitter.cpp", + "${IDL_DIR}/codegen/rust_code_emitter.cpp", "${IDL_DIR}/codegen/ts_code_emitter.cpp", ] diff --git a/test/unittest/cpp_code_emitter_test/cpp_code_emitter_test.cpp b/test/unittest/cpp_code_emitter_test/cpp_code_emitter_test.cpp index 08720510f39ad3e052c951094e4c98fb1cdc7cc1..b75750564d387a78d790257ee76a5f499b8264b9 100644 --- a/test/unittest/cpp_code_emitter_test/cpp_code_emitter_test.cpp +++ b/test/unittest/cpp_code_emitter_test/cpp_code_emitter_test.cpp @@ -17,6 +17,7 @@ #define private public #define protected public #include "codegen/cpp_code_emitter.h" +#include "codegen/rust_code_emitter.h" #include "metadata/meta_component.h" #include "metadata/meta_type.h" #include "util/string_builder.h" @@ -1453,5 +1454,84 @@ HWTEST_F(CppCodeEmitterUnitTest, GetFilePath_test_0010, TestSize.Level1) delete [] codeEmitter.metaInterface_; } + +/** + * @tc.name: RustCodeEmitter_test_0010 + * @tc.desc: Verify the RustCodeEmitter function. + * @tc.type: FUNC + * @tc.require: #I8JQUO + */ +HWTEST_F(CppCodeEmitterUnitTest, RustCodeEmitter_test_0010, TestSize.Level1) +{ + /** + * @tc.steps: step1. Initialization parameters. + */ + MetaComponent mc; + RustCodeEmitter* codeEmitter = new RustCodeEmitter(&mc); + + MetaType *mt = new MetaType; + int32_t indexes = 0; + mt->nestedTypeIndexes_ = &indexes; + mt->index_ = 0; + + mc.types_ = new MetaType *[1]; + mc.types_[0] = mt; + mc.sequenceables_ = new MetaSequenceable*[1]; + char mseqName[] = "MetaSequenceable"; + MetaSequenceable mp; + mp.name_ = mseqName; + mc.sequenceables_[0] = ∓ + mc.interfaces_ = new MetaInterface*[1]; + char miName[] = "MetaInterface"; + MetaInterface mi; + mi.name_ = miName; + mc.interfaces_[0] = &mi; + + mt->kind_ = TypeKind::Boolean; + String result = codeEmitter->ConvertType(mt, false); + EXPECT_STREQ(result, "bool"); + + mt->kind_ = TypeKind::Byte; + result = codeEmitter->ConvertType(mt, false); + EXPECT_STREQ(result, "i8"); + + mt->kind_ = TypeKind::Short; + result = codeEmitter->ConvertType(mt, false); + EXPECT_STREQ(result, "i16"); + + mt->kind_ = TypeKind::Integer; + result = codeEmitter->ConvertType(mt, false); + EXPECT_STREQ(result, "i32"); + + mt->kind_ = TypeKind::Long; + result = codeEmitter->ConvertType(mt, false); + EXPECT_STREQ(result, "i64"); + + mt->kind_ = TypeKind::Float; + result = codeEmitter->ConvertType(mt, false); + EXPECT_STREQ(result, "f32"); + + mt->kind_ = TypeKind::Double; + result = codeEmitter->ConvertType(mt, false); + EXPECT_STREQ(result, "f64"); + + mt->kind_ = TypeKind::String; + result = codeEmitter->ConvertType(mt, false); + EXPECT_STREQ(result, "String"); + + mt->kind_ = TypeKind::Sequenceable; + result = codeEmitter->ConvertType(mt, false); + EXPECT_STREQ(result, "MetaSequenceable"); + + mt->kind_ = TypeKind::Interface; + result = codeEmitter->ConvertType(mt, false); + EXPECT_STREQ(result, "MetaInterface"); + + delete codeEmitter; + delete mt; + delete [] mc.types_; + delete [] mc.sequenceables_; + delete [] mc.interfaces_; +} } // namespace idl } // namespace OHOS diff --git a/test/unittest/metadata_dumper_test/metadata_dumper_test.cpp b/test/unittest/metadata_dumper_test/metadata_dumper_test.cpp index 1bcaa17bf65d89434695884e731d56409ba2ecd9..828ea884e071d402939e742d127c250b2ae1c946 100644 --- a/test/unittest/metadata_dumper_test/metadata_dumper_test.cpp +++ b/test/unittest/metadata_dumper_test/metadata_dumper_test.cpp @@ -219,5 +219,31 @@ HWTEST_F(MetadataDumperUnitTest, MetadataDumperUnitTest_1700, Function | MediumT mt = {TypeKind::Unknown, 0, 1, new (std::nothrow) int(0)}; metadataDumper->DumpMetaType(&mt); } + +/* + * @tc.name: MetadataDumperUnitTest_0200 + * @tc.desc: test DumpMetaParameter in MetadataDumperUnitTest. + * @tc.type: FUNC + * @tc.require: issue + */ +HWTEST_F(MetadataDumperUnitTest, MetadataDumperUnitTest_0200, Function | MediumTest | Level1) +{ + MetaComponent* mc = new MetaComponent; + std::shared_ptr metadataDumper = std::make_shared(mc); + ASSERT_NE(nullptr, metadataDumper); + + String prefix = "this is prefix"; + mc->magic_ = 1; + mc->size_ = 10; + const char* name = "DumpMetaComponent Test"; + mc->name_ = (char*)name; + mc->typeNumber_ = 0; + mc->namespaceNumber_ = 0; + mc->sequenceableNumber_ = 0; + mc->interfaceNumber_ = 0; + metadataDumper->Dump(prefix); + + delete mc; +} } // namespace idl } // namespace OHOS diff --git a/test/unittest/util_options_test/options_test.cpp b/test/unittest/util_options_test/options_test.cpp index 0e1e1d847c6ede732f12dc8e25f1a113f51d60c0..e290a6d0592bc644ed174e6ce118344a8b5ff3ca 100644 --- a/test/unittest/util_options_test/options_test.cpp +++ b/test/unittest/util_options_test/options_test.cpp @@ -16,6 +16,7 @@ #include #define private public #define protected public +#include "util/logger.h" #include "util/options.h" #undef protected #undef private @@ -75,5 +76,50 @@ HWTEST_F(OptionsUnitTest, OptionsUnitTest_0100, Function | MediumTest | Level1) EXPECT_FALSE(logOn); delete[] argv; } + +HWTEST_F(OptionsUnitTest, OptionsUnitTest_0101, Function | MediumTest | Level1) +{ + std::string strings[] = {"-t", "-log-domainid", "-log-tag"}; + int32_t count = sizeof(strings) / sizeof(strings[0]); + char **argv = new char *[count]; + for (int32_t i = 0; i < count; i++) { + argv[i] = const_cast(strings[i].c_str()); + } + + Options options(count, argv); + auto doHitrace = options.DoHitraceState(); + auto logOn = options.DoLogOn(); + options.illegalOptions_ = "show warning test"; + options.ShowErrors(); + options.ShowVersion(); + EXPECT_FALSE(doHitrace); + EXPECT_FALSE(logOn); + delete[] argv; +} + +HWTEST_F(OptionsUnitTest, OptionsUnitTest_0102, Function | MediumTest | Level1) +{ + std::string strings[] = {"./idl", "--help", "--version", "-c", "-dump-ast", + "-dump-metadata", "-s", "-gen-rust", "-gen-cpp", "-gen-ts", "-d", + "-log-domainid", "-log-tag", "-t"}; + int32_t count = sizeof(strings) / sizeof(strings[0]); + char **argv = new char *[count]; + for (int32_t i = 0; i < count; i++) { + argv[i] = const_cast(strings[i].c_str()); + } + + Options options(count, argv); + options.Parse(count, argv); + EXPECT_TRUE(argv != nullptr); +} + +HWTEST_F(OptionsUnitTest, OptionsUnitTest_0103, Function | MediumTest | Level1) +{ + Logger::SetLevel(Logger::DEBUG); + Logger::D("OptionsUnitTest", "idl log ut test::DEBUG"); + Logger::E("OptionsUnitTest", "idl log ut test::ERROR"); + Logger::V("OptionsUnitTest", "idl log ut test::VERBOSE"); + EXPECT_EQ(Logger::level_, Logger::DEBUG); +} } } \ No newline at end of file