9 Star 5 Fork 47

src-openEuler/iSulad

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0156-sandbox-sandbox-api-adapt-rust-interface-UT.patch 144.23 KB
一键复制 编辑 原始数据 按行查看 历史
liuxu 提交于 2024-11-25 16:34 +08:00 . upgrade from upstream
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021
From 6de0c825b7d8dd2d7b1c53524f6ecebcef22bc75 Mon Sep 17 00:00:00 2001
From: liuxu <liuxu156@huawei.com>
Date: Fri, 22 Nov 2024 14:11:42 +0800
Subject: [PATCH 156/156] sandbox: sandbox api adapt rust interface UT
Signed-off-by: liuxu <liuxu156@huawei.com>
---
test/cutils/utils_transform/CMakeLists.txt | 1 -
test/mocks/controller_stub_mock.cc | 314 ----------------
test/mocks/controller_stub_mock.h | 239 ------------
test/mocks/grpc_async_wait_call_mock.cc | 92 -----
test/mocks/grpc_async_wait_call_mock.h | 37 --
test/mocks/grpc_sandboxer_client_mock.cc | 44 +--
test/mocks/grpc_sandboxer_client_mock.h | 11 +-
test/mocks/grpc_sandboxer_monitor_mock.cc | 51 ---
test/mocks/rust_sandbox_api_mock.cc | 103 ++++++
test/mocks/rust_sandbox_api_mock.h | 39 ++
test/mocks/sandbox_manager_mock.cc | 42 +++
..._monitor_mock.h => sandbox_manager_mock.h} | 35 +-
test/mocks/sandboxer_controller_mock.cc | 116 ++++++
test/mocks/sandboxer_controller_mock.h | 52 +++
test/mocks/sandboxer_sandbox_mock.cc | 72 ++++
test/mocks/sandboxer_sandbox_mock.h | 43 +++
test/mocks/shim_controller_mock.cc | 36 +-
test/mocks/shim_controller_mock.h | 11 +-
test/mocks/shim_sandbox_mock.cc | 72 ++++
test/mocks/shim_sandbox_mock.h | 43 +++
test/sandbox/controller/CMakeLists.txt | 2 -
test/sandbox/controller/controller_common.cc | 51 ++-
test/sandbox/controller/controller_common.h | 9 +-
.../sandbox/controller/manager/CMakeLists.txt | 15 +-
.../controller/sandboxer/CMakeLists.txt | 1 -
.../sandboxer/async_wait_call/CMakeLists.txt | 37 --
.../async_wait_call/async_wait_call_ut.cc | 115 ------
.../async_wait_call/dummy_monitor_utils.h | 121 ------
.../sandboxer/sandboxer_client/CMakeLists.txt | 22 +-
.../sandboxer_client/sandboxer_client_ut.cc | 344 ++++++++----------
.../sandboxer_controller/CMakeLists.txt | 11 +-
.../sandboxer_controller_ut.cc | 62 +---
test/sandbox/controller/shim/CMakeLists.txt | 7 +-
test/sandbox/sandbox/CMakeLists.txt | 21 +-
test/sandbox/sandbox/sandbox_ut.cc | 5 +-
test/sandbox/sandbox_manager/CMakeLists.txt | 21 +-
36 files changed, 861 insertions(+), 1436 deletions(-)
delete mode 100644 test/mocks/controller_stub_mock.cc
delete mode 100644 test/mocks/controller_stub_mock.h
delete mode 100644 test/mocks/grpc_async_wait_call_mock.cc
delete mode 100644 test/mocks/grpc_async_wait_call_mock.h
delete mode 100644 test/mocks/grpc_sandboxer_monitor_mock.cc
create mode 100644 test/mocks/rust_sandbox_api_mock.cc
create mode 100644 test/mocks/rust_sandbox_api_mock.h
create mode 100644 test/mocks/sandbox_manager_mock.cc
rename test/mocks/{grpc_sandboxer_monitor_mock.h => sandbox_manager_mock.h} (55%)
create mode 100644 test/mocks/sandboxer_controller_mock.cc
create mode 100644 test/mocks/sandboxer_controller_mock.h
create mode 100644 test/mocks/sandboxer_sandbox_mock.cc
create mode 100644 test/mocks/sandboxer_sandbox_mock.h
create mode 100644 test/mocks/shim_sandbox_mock.cc
create mode 100644 test/mocks/shim_sandbox_mock.h
delete mode 100644 test/sandbox/controller/sandboxer/async_wait_call/CMakeLists.txt
delete mode 100644 test/sandbox/controller/sandboxer/async_wait_call/async_wait_call_ut.cc
delete mode 100644 test/sandbox/controller/sandboxer/async_wait_call/dummy_monitor_utils.h
diff --git a/test/cutils/utils_transform/CMakeLists.txt b/test/cutils/utils_transform/CMakeLists.txt
index fde9c9f9..23c870fa 100644
--- a/test/cutils/utils_transform/CMakeLists.txt
+++ b/test/cutils/utils_transform/CMakeLists.txt
@@ -15,7 +15,6 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cutils/map
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cutils
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/google/protobuf
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} libutils_ut -lcrypto -lprotobuf -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE} --gtest_output=xml:${EXE}-Results.xml)
diff --git a/test/mocks/controller_stub_mock.cc b/test/mocks/controller_stub_mock.cc
deleted file mode 100644
index 712540bb..00000000
--- a/test/mocks/controller_stub_mock.cc
+++ /dev/null
@@ -1,314 +0,0 @@
-#include "controller_stub_mock.h"
-
-static std::shared_ptr<MockControllerStub> g_controller_stub_mock = NULL;
-
-std::unique_ptr<DummyControllerStub> NewDummyControllerStub()
-{
- std::unique_ptr<DummyControllerStub> stub(new DummyControllerStub());
- return stub;
-}
-
-void MockControllerStub_SetMock(std::shared_ptr<MockControllerStub> mock)
-{
- g_controller_stub_mock = mock;
-}
-
-::grpc::Status DummyControllerStub::Create(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerCreateRequest &request,
- ::containerd::services::sandbox::v1::ControllerCreateResponse* response)
-{
- if (g_controller_stub_mock == NULL) {
- return ::grpc::Status::OK;
- }
- return g_controller_stub_mock->Create(context, request, response);
-}
-
-::grpc::Status DummyControllerStub::Start(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStartRequest &request,
- ::containerd::services::sandbox::v1::ControllerStartResponse* response)
-{
- if (g_controller_stub_mock == NULL) {
- return ::grpc::Status::OK;
- }
- return g_controller_stub_mock->Start(context, request, response);
-}
-
-::grpc::Status DummyControllerStub::Platform(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerPlatformRequest &request,
- ::containerd::services::sandbox::v1::ControllerPlatformResponse* response)
-{
- if (g_controller_stub_mock == NULL) {
- return ::grpc::Status::OK;
- }
- return g_controller_stub_mock->Platform(context, request, response);
-}
-
-::grpc::Status DummyControllerStub::Prepare(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::PrepareRequest &request,
- ::containerd::services::sandbox::v1::PrepareResponse* response)
-{
- if (g_controller_stub_mock == NULL) {
- return ::grpc::Status::OK;
- }
- return g_controller_stub_mock->Prepare(context, request, response);
-}
-
-::grpc::Status DummyControllerStub::Purge(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::PurgeRequest &request,
- ::containerd::services::sandbox::v1::PurgeResponse* response)
-{
- if (g_controller_stub_mock == NULL) {
- return ::grpc::Status::OK;
- }
- return g_controller_stub_mock->Purge(context, request, response);
-}
-
-::grpc::Status DummyControllerStub::UpdateResources(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::UpdateResourcesRequest &request,
- ::containerd::services::sandbox::v1::UpdateResourcesResponse* response)
-{
- if (g_controller_stub_mock == NULL) {
- return ::grpc::Status::OK;
- }
- return g_controller_stub_mock->UpdateResources(context, request, response);
-}
-
-::grpc::Status DummyControllerStub::Stop(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStopRequest &request,
- ::containerd::services::sandbox::v1::ControllerStopResponse* response)
-{
- if (g_controller_stub_mock == NULL) {
- return ::grpc::Status::OK;
- }
- return g_controller_stub_mock->Stop(context, request, response);
-}
-
-::grpc::Status DummyControllerStub::Wait(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerWaitRequest &request,
- ::containerd::services::sandbox::v1::ControllerWaitResponse* response)
-{
- if (g_controller_stub_mock == NULL) {
- return ::grpc::Status::OK;
- }
- return g_controller_stub_mock->Wait(context, request, response);
-}
-
-::grpc::Status DummyControllerStub::Status(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStatusRequest &request,
- ::containerd::services::sandbox::v1::ControllerStatusResponse* response)
-{
- if (g_controller_stub_mock == NULL) {
- return ::grpc::Status::OK;
- }
- return g_controller_stub_mock->Status(context, request, response);
-}
-
-::grpc::Status DummyControllerStub::Shutdown(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerShutdownRequest &request,
- ::containerd::services::sandbox::v1::ControllerShutdownResponse* response)
-{
- if (g_controller_stub_mock == NULL) {
- return ::grpc::Status::OK;
- }
- return g_controller_stub_mock->Shutdown(context, request, response);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerCreateResponse>*
-DummyControllerStub::AsyncCreateRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerCreateRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->AsyncCreateRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerCreateResponse>*
-DummyControllerStub::PrepareAsyncCreateRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerCreateRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->PrepareAsyncCreateRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStartResponse>*
-DummyControllerStub::AsyncStartRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStartRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->AsyncStartRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStartResponse>*
-DummyControllerStub::PrepareAsyncStartRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStartRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->PrepareAsyncStartRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerPlatformResponse>*
-DummyControllerStub::AsyncPlatformRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerPlatformRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->AsyncPlatformRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerPlatformResponse>*
-DummyControllerStub::PrepareAsyncPlatformRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerPlatformRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->PrepareAsyncPlatformRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::PrepareResponse>*
-DummyControllerStub::AsyncPrepareRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::PrepareRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->AsyncPrepareRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::PrepareResponse>*
-DummyControllerStub::PrepareAsyncPrepareRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::PrepareRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->PrepareAsyncPrepareRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::PurgeResponse>*
-DummyControllerStub::AsyncPurgeRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::PurgeRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->AsyncPurgeRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::PurgeResponse>*
-DummyControllerStub::PrepareAsyncPurgeRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::PurgeRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->PrepareAsyncPurgeRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::UpdateResourcesResponse>*
-DummyControllerStub::AsyncUpdateResourcesRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::UpdateResourcesRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->AsyncUpdateResourcesRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::UpdateResourcesResponse>*
-DummyControllerStub::PrepareAsyncUpdateResourcesRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::UpdateResourcesRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->PrepareAsyncUpdateResourcesRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStopResponse>*
-DummyControllerStub::AsyncStopRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStopRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->AsyncStopRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStopResponse>*
-DummyControllerStub::PrepareAsyncStopRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStopRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->PrepareAsyncStopRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerWaitResponse>*
-DummyControllerStub::AsyncWaitRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerWaitRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->AsyncWaitRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerWaitResponse>*
-DummyControllerStub::PrepareAsyncWaitRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerWaitRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->PrepareAsyncWaitRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStatusResponse>*
-DummyControllerStub::AsyncStatusRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStatusRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->AsyncStatusRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStatusResponse>*
-DummyControllerStub::PrepareAsyncStatusRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStatusRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->PrepareAsyncStatusRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerShutdownResponse>*
-DummyControllerStub::AsyncShutdownRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerShutdownRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->AsyncShutdownRaw(context, request, cq);
-}
-
-::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerShutdownResponse>*
-DummyControllerStub::PrepareAsyncShutdownRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerShutdownRequest &request, ::grpc::CompletionQueue* cq)
-{
- if (g_controller_stub_mock == NULL) {
- return NULL;
- }
- return g_controller_stub_mock->PrepareAsyncShutdownRaw(context, request, cq);
-}
diff --git a/test/mocks/controller_stub_mock.h b/test/mocks/controller_stub_mock.h
deleted file mode 100644
index 85cb82bb..00000000
--- a/test/mocks/controller_stub_mock.h
+++ /dev/null
@@ -1,239 +0,0 @@
-/******************************************************************************
- * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
- * iSulad licensed under the Mulan PSL v2.
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
- * You may obtain a copy of Mulan PSL v2 at:
- * http://license.coscl.org.cn/MulanPSL2
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
- * PURPOSE.
- * See the Mulan PSL v2 for more details.
- * Author: xuxuepeng
- * Create: 2023-07-15
- * Description: provide grpc controller stub mock
- ******************************************************************************/
-
-#ifndef _ISULAD_TEST_MOCKS_CONTROLLER_STUB_MOCK_H
-#define _ISULAD_TEST_MOCKS_CONTROLLER_STUB_MOCK_H
-
-
-#include <gmock/gmock.h>
-#include "sandbox.grpc.pb.h"
-
-// MockControllerStub is a mock implementation of the Controller::StubInterface interface.
-class MockControllerStub {
-public:
- MOCK_METHOD3(Create, ::grpc::Status(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerCreateRequest &request,
- ::containerd::services::sandbox::v1::ControllerCreateResponse* response));
- MOCK_METHOD3(Start, ::grpc::Status(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStartRequest &request,
- ::containerd::services::sandbox::v1::ControllerStartResponse* response));
- MOCK_METHOD3(Platform, ::grpc::Status(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerPlatformRequest &request,
- ::containerd::services::sandbox::v1::ControllerPlatformResponse* response));
- MOCK_METHOD3(Prepare, ::grpc::Status(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::PrepareRequest &request,
- ::containerd::services::sandbox::v1::PrepareResponse* response));
- MOCK_METHOD3(Purge, ::grpc::Status(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::PurgeRequest &request,
- ::containerd::services::sandbox::v1::PurgeResponse* response));
- MOCK_METHOD3(UpdateResources, ::grpc::Status(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::UpdateResourcesRequest &request,
- ::containerd::services::sandbox::v1::UpdateResourcesResponse* response));
- MOCK_METHOD3(Stop, ::grpc::Status(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStopRequest &request,
- ::containerd::services::sandbox::v1::ControllerStopResponse* response));
- MOCK_METHOD3(Wait, ::grpc::Status(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerWaitRequest &request,
- ::containerd::services::sandbox::v1::ControllerWaitResponse* response));
- MOCK_METHOD3(Status, ::grpc::Status(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStatusRequest &request,
- ::containerd::services::sandbox::v1::ControllerStatusResponse* response));
- MOCK_METHOD3(Shutdown, ::grpc::Status(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerShutdownRequest &request,
- ::containerd::services::sandbox::v1::ControllerShutdownResponse* response));
- MOCK_METHOD3(AsyncCreateRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerCreateResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerCreateRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(PrepareAsyncCreateRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerCreateResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerCreateRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(AsyncStartRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStartResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerStartRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(PrepareAsyncStartRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStartResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerStartRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(AsyncPlatformRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerPlatformResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerPlatformRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(PrepareAsyncPlatformRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerPlatformResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerPlatformRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(AsyncPrepareRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::PrepareResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::PrepareRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(PrepareAsyncPrepareRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::PrepareResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::PrepareRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(AsyncPurgeRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::PurgeResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::PurgeRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(PrepareAsyncPurgeRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::PurgeResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::PurgeRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(AsyncUpdateResourcesRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::UpdateResourcesResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::UpdateResourcesRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(PrepareAsyncUpdateResourcesRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::UpdateResourcesResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::UpdateResourcesRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(AsyncStopRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStopResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerStopRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(PrepareAsyncStopRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStopResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerStopRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(AsyncWaitRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerWaitResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerWaitRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(PrepareAsyncWaitRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerWaitResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerWaitRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(AsyncStatusRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStatusResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerStatusRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(PrepareAsyncStatusRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStatusResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerStatusRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(AsyncShutdownRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerShutdownResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerShutdownRequest &request,
- ::grpc::CompletionQueue* cq));
- MOCK_METHOD3(PrepareAsyncShutdownRaw,
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerShutdownResponse>*
- (::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerShutdownRequest &request,
- ::grpc::CompletionQueue* cq));
-};
-
-class DummyControllerStub: public containerd::services::sandbox::v1::Controller::StubInterface {
-public:
- DummyControllerStub() = default;
- ~DummyControllerStub() = default;
- ::grpc::Status Create(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerCreateRequest &request,
- ::containerd::services::sandbox::v1::ControllerCreateResponse* response) override;
- ::grpc::Status Start(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStartRequest &request,
- ::containerd::services::sandbox::v1::ControllerStartResponse* response) override;
- ::grpc::Status Platform(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerPlatformRequest &request,
- ::containerd::services::sandbox::v1::ControllerPlatformResponse* response) override;
- ::grpc::Status Prepare(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::PrepareRequest &request,
- ::containerd::services::sandbox::v1::PrepareResponse* response) override;
- ::grpc::Status Purge(::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::PurgeRequest &request,
- ::containerd::services::sandbox::v1::PurgeResponse* response) override;
- ::grpc::Status UpdateResources(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::UpdateResourcesRequest &request,
- ::containerd::services::sandbox::v1::UpdateResourcesResponse* response) override;
- ::grpc::Status Stop(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStopRequest &request,
- ::containerd::services::sandbox::v1::ControllerStopResponse* response) override;
- ::grpc::Status Wait(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerWaitRequest &request,
- ::containerd::services::sandbox::v1::ControllerWaitResponse* response) override;
- ::grpc::Status Status(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStatusRequest &request,
- ::containerd::services::sandbox::v1::ControllerStatusResponse* response) override;
- ::grpc::Status Shutdown(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerShutdownRequest &request,
- ::containerd::services::sandbox::v1::ControllerShutdownResponse* response) override;
-private:
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerCreateResponse>*
- AsyncCreateRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerCreateRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerCreateResponse>*
- PrepareAsyncCreateRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerCreateRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStartResponse>*
- AsyncStartRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStartRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStartResponse>*
- PrepareAsyncStartRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStartRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerPlatformResponse>*
- AsyncPlatformRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerPlatformRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerPlatformResponse>*
- PrepareAsyncPlatformRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerPlatformRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::PrepareResponse>* AsyncPrepareRaw(
- ::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::PrepareRequest &request,
- ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::PrepareResponse>*
- PrepareAsyncPrepareRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::PrepareRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::PurgeResponse>* AsyncPurgeRaw(
- ::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::PurgeRequest &request,
- ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::PurgeResponse>* PrepareAsyncPurgeRaw(
- ::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::PurgeRequest &request,
- ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::UpdateResourcesResponse>*
- AsyncUpdateResourcesRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::UpdateResourcesRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::UpdateResourcesResponse>*
- PrepareAsyncUpdateResourcesRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::UpdateResourcesRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStopResponse>* AsyncStopRaw(
- ::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerStopRequest &request,
- ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStopResponse>*
- PrepareAsyncStopRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStopRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerWaitResponse>* AsyncWaitRaw(
- ::grpc::ClientContext* context, const ::containerd::services::sandbox::v1::ControllerWaitRequest &request,
- ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerWaitResponse>*
- PrepareAsyncWaitRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerWaitRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStatusResponse>*
- AsyncStatusRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStatusRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerStatusResponse>*
- PrepareAsyncStatusRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerStatusRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerShutdownResponse>*
- AsyncShutdownRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerShutdownRequest &request, ::grpc::CompletionQueue* cq) override;
- ::grpc::ClientAsyncResponseReaderInterface< ::containerd::services::sandbox::v1::ControllerShutdownResponse>*
- PrepareAsyncShutdownRaw(::grpc::ClientContext* context,
- const ::containerd::services::sandbox::v1::ControllerShutdownRequest &request, ::grpc::CompletionQueue* cq) override;
-};
-
-std::unique_ptr<DummyControllerStub> NewDummyControllerStub();
-
-void MockControllerStub_SetMock(std::shared_ptr<MockControllerStub> stub);
-
-
-#endif // _ISULAD_TEST_MOCKS_CONTROLLER_STUB_MOCK_H
\ No newline at end of file
diff --git a/test/mocks/grpc_async_wait_call_mock.cc b/test/mocks/grpc_async_wait_call_mock.cc
deleted file mode 100644
index 5eef1794..00000000
--- a/test/mocks/grpc_async_wait_call_mock.cc
+++ /dev/null
@@ -1,92 +0,0 @@
-/******************************************************************************
- * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
- * iSulad licensed under the Mulan PSL v2.
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
- * You may obtain a copy of Mulan PSL v2 at:
- * http://license.coscl.org.cn/MulanPSL2
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
- * PURPOSE.
- * See the Mulan PSL v2 for more details.
- * Author: xuxuepeng
- * Create: 2023-07-31
- * Description: provide grpc sandboxer async wait call mock
- ******************************************************************************/
-
-#include "grpc_async_wait_call_mock.h"
-
-static std::shared_ptr<SandboxerAsyncWaitCallMock> g_sandboxer_async_wait_call_mock = NULL;
-
-void MockSandboxerAsyncWaitCall_SetMock(std::shared_ptr<SandboxerAsyncWaitCallMock> mock)
-{
- g_sandboxer_async_wait_call_mock = mock;
-}
-
-SandboxerAsyncWaitCall::SandboxerAsyncWaitCall(std::shared_ptr<SandboxStatusCallback> cb,
- const std::string &sandboxId, const std::string &sandboxer)
-{
- m_cb = cb;
- m_sandboxId = sandboxId;
- m_sandboxer = sandboxer;
- m_status = grpc::Status::OK;
- m_retryTimes = 0;
- m_retryCounter = 0;
- m_remove = false;
-}
-
-auto SandboxerAsyncWaitCall::Call(containerd::services::sandbox::v1::Controller::StubInterface &stub,
- grpc::CompletionQueue &cq) -> bool
-{
- if (g_sandboxer_async_wait_call_mock == NULL) {
- return true;
- }
- return g_sandboxer_async_wait_call_mock->Call(stub, cq);
-}
-
-auto SandboxerAsyncWaitCall::HandleResponse() -> SandboxerAsyncWaitStatus
-{
- if (g_sandboxer_async_wait_call_mock == NULL) {
- return SANDBOXER_ASYNC_WAIT_STATUS_OK;
- }
- return g_sandboxer_async_wait_call_mock->HandleResponse();
-}
-
-auto SandboxerAsyncWaitCall::Timeout() -> bool
-{
- if (g_sandboxer_async_wait_call_mock == NULL) {
- return true;
- }
- return g_sandboxer_async_wait_call_mock->Timeout();
-}
-
-void SandboxerAsyncWaitCall::SandboxExitCallback(bool statusOK, const ControllerExitInfo &exitInfo)
-{
- if (g_sandboxer_async_wait_call_mock == NULL) {
- return;
- }
- return g_sandboxer_async_wait_call_mock->SandboxExitCallback(statusOK, exitInfo);
-}
-
-void SandboxerAsyncWaitCall::SandboxPendingCallback()
-{
- if (g_sandboxer_async_wait_call_mock == NULL) {
- return;
- }
- return g_sandboxer_async_wait_call_mock->SandboxPendingCallback();
-}
-
-void SandboxerAsyncWaitCall::SandboxReadyCallback()
-{
- if (g_sandboxer_async_wait_call_mock == NULL) {
- return;
- }
- return g_sandboxer_async_wait_call_mock->SandboxReadyCallback();
-}
-
-auto SandboxerAsyncWaitCall::GetSandboxId() -> const std::string &
-{
- if (g_sandboxer_async_wait_call_mock == NULL) {
- return m_sandboxId;
- }
- return g_sandboxer_async_wait_call_mock->GetSandboxId();
-}
diff --git a/test/mocks/grpc_async_wait_call_mock.h b/test/mocks/grpc_async_wait_call_mock.h
deleted file mode 100644
index c79f998e..00000000
--- a/test/mocks/grpc_async_wait_call_mock.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/******************************************************************************
- * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
- * iSulad licensed under the Mulan PSL v2.
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
- * You may obtain a copy of Mulan PSL v2 at:
- * http://license.coscl.org.cn/MulanPSL2
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
- * PURPOSE.
- * See the Mulan PSL v2 for more details.
- * Author: xuxuepeng
- * Create: 2023-07-31
- * Description: provide grpc sandboxer async wait call mock
- ******************************************************************************/
-
-#ifndef _ISULAD_TEST_MOCKS_GRPC_SANDBOXER_ASYNC_WAIT_CALL_MOCK_H
-#define _ISULAD_TEST_MOCKS_GRPC_SANDBOXER_ASYNC_WAIT_CALL_MOCK_H
-
-#include <gmock/gmock.h>
-#include "grpc_async_wait_call.h"
-using namespace sandbox;
-
-// Mock above class
-class SandboxerAsyncWaitCallMock {
-public:
- MOCK_METHOD2(Call, bool(containerd::services::sandbox::v1::Controller::StubInterface &stub, grpc::CompletionQueue &cq));
- MOCK_METHOD0(HandleResponse, SandboxerAsyncWaitStatus());
- MOCK_METHOD0(Timeout, bool());
- MOCK_METHOD2(SandboxExitCallback, void(bool statusOK, const ControllerExitInfo &exitInfo));
- MOCK_METHOD0(SandboxPendingCallback, void());
- MOCK_METHOD0(SandboxReadyCallback, void());
- MOCK_METHOD0(GetSandboxId, const std::string & ());
-};
-
-void MockSandboxerAsyncWaitCall_SetMock(std::shared_ptr<SandboxerAsyncWaitCallMock> mock);
-
-#endif // _ISULAD_TEST_MOCKS_GRPC_SANDBOXER_ASYNC_WAIT_CALL_MOCK_H
\ No newline at end of file
diff --git a/test/mocks/grpc_sandboxer_client_mock.cc b/test/mocks/grpc_sandboxer_client_mock.cc
index 03df9048..1f03a00e 100644
--- a/test/mocks/grpc_sandboxer_client_mock.cc
+++ b/test/mocks/grpc_sandboxer_client_mock.cc
@@ -14,7 +14,6 @@
******************************************************************************/
#include "grpc_sandboxer_client_mock.h"
-#include "controller_stub_mock.h"
static std::shared_ptr<SandboxerClientMock> g_sandboxer_client_mock = NULL;
@@ -22,24 +21,6 @@ SandboxerClient::SandboxerClient(const std::string &sandboxer, const std::string
{
m_sandboxer = sandboxer;
m_address = address;
- m_channel = grpc::CreateChannel(m_address, grpc::InsecureChannelCredentials());
- m_stub = NewDummyControllerStub();
-}
-
-void SandboxerClient::Init(Errors &error)
-{
- if (g_sandboxer_client_mock == NULL) {
- return;
- }
- g_sandboxer_client_mock->Init(error);
-}
-
-void SandboxerClient::Destroy()
-{
- if (g_sandboxer_client_mock == NULL) {
- return;
- }
- return g_sandboxer_client_mock->Destroy();
}
auto SandboxerClient::Create(const std::string &sandboxId, const ControllerCreateParams &params, Errors &error) -> bool
@@ -67,31 +48,12 @@ auto SandboxerClient::Platform(const std::string &sandboxId, ControllerPlatformI
return g_sandboxer_client_mock->Platform(sandboxId, platformInfo, error);
}
-auto SandboxerClient::Prepare(const std::string &sandboxId, const ControllerPrepareParams &params, std::string &bundle,
- Errors &error) -> bool
+auto SandboxerClient::Update(sandbox_sandbox *apiSandbox, string_array *fields, Errors &error) -> bool
{
if (g_sandboxer_client_mock == NULL) {
return true;
}
- return g_sandboxer_client_mock->Prepare(sandboxId, params, bundle, error);
-}
-
-auto SandboxerClient::Purge(const std::string &sandboxId, const std::string &containerId,
- const std::string &execId, Errors &error) -> bool
-{
- if (g_sandboxer_client_mock == NULL) {
- return true;
- }
- return g_sandboxer_client_mock->Purge(sandboxId, containerId, execId, error);
-}
-
-auto SandboxerClient::UpdateResources(const std::string &sandboxId, const ControllerUpdateResourcesParams &params,
- Errors &error) -> bool
-{
- if (g_sandboxer_client_mock == NULL) {
- return true;
- }
- return g_sandboxer_client_mock->UpdateResources(sandboxId, params, error);
+ return g_sandboxer_client_mock->Update(apiSandbox, fields, error);
}
auto SandboxerClient::Stop(const std::string &sandboxId, uint32_t timeoutSecs, Errors &error) -> bool
@@ -131,4 +93,4 @@ auto SandboxerClient::Shutdown(const std::string &sandboxId, Errors &error) -> b
void MockSandboxerClient_SetMock(std::shared_ptr<SandboxerClientMock> mock)
{
g_sandboxer_client_mock = mock;
-}
\ No newline at end of file
+}
diff --git a/test/mocks/grpc_sandboxer_client_mock.h b/test/mocks/grpc_sandboxer_client_mock.h
index ac06462a..8d535013 100644
--- a/test/mocks/grpc_sandboxer_client_mock.h
+++ b/test/mocks/grpc_sandboxer_client_mock.h
@@ -17,23 +17,18 @@
#define _ISULAD_TEST_MOCKS_GRPC_SANDBOXER_CLIENT_MOCK_H
#include <gmock/gmock.h>
+#include <isula_sandbox_api.h>
+
#include "grpc_sandboxer_client.h"
using namespace sandbox;
class SandboxerClientMock {
public:
SandboxerClientMock() = default;
- MOCK_METHOD1(Init, void(Errors &error));
- MOCK_METHOD0(Destroy, void());
MOCK_METHOD3(Create, bool(const std::string &sandboxId, const ControllerCreateParams &params, Errors &error));
MOCK_METHOD3(Start, bool(const std::string &sandboxId, ControllerSandboxInfo &sandboxInfo, Errors &error));
MOCK_METHOD3(Platform, bool(const std::string &sandboxId, ControllerPlatformInfo &platformInfo, Errors &error));
- MOCK_METHOD4(Prepare, bool(const std::string &sandboxId, const ControllerPrepareParams &params, std::string &bundle,
- Errors &error));
- MOCK_METHOD4(Purge, bool(const std::string &sandboxId, const std::string &containerId, const std::string &execId,
- Errors &error));
- MOCK_METHOD3(UpdateResources, bool(const std::string &sandboxId, const ControllerUpdateResourcesParams &params,
- Errors &error));
+ MOCK_METHOD3(Update, bool(sandbox_sandbox *apiSandbox, string_array *fields, Errors &error));
MOCK_METHOD3(Stop, bool(const std::string &sandboxId, uint32_t timeoutSecs, Errors &error));
MOCK_METHOD3(Wait, bool(std::shared_ptr<SandboxStatusCallback> cb, const std::string &sandboxId, Errors &error));
MOCK_METHOD4(Status, bool(const std::string &sandboxId, bool verbose, ControllerSandboxStatus &sandboxStatus,
diff --git a/test/mocks/grpc_sandboxer_monitor_mock.cc b/test/mocks/grpc_sandboxer_monitor_mock.cc
deleted file mode 100644
index b3ddda87..00000000
--- a/test/mocks/grpc_sandboxer_monitor_mock.cc
+++ /dev/null
@@ -1,51 +0,0 @@
-/******************************************************************************
- * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
- * iSulad licensed under the Mulan PSL v2.
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
- * You may obtain a copy of Mulan PSL v2 at:
- * http://license.coscl.org.cn/MulanPSL2
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
- * PURPOSE.
- * See the Mulan PSL v2 for more details.
- * Author: xuxuepeng
- * Create: 2023-07-31
- * Description: provide grpc sandboxer client monitor mock
- ******************************************************************************/
-
-#include "grpc_sandboxer_monitor_mock.h"
-
-static std::shared_ptr<SandboxerClientMonitorMock> g_sandboxer_client_monitor_mock = NULL;
-
-
-SandboxerClientMonitor::SandboxerClientMonitor(std::shared_ptr<grpc::Channel> channel, const std::string &sandboxer):
- m_channel(channel), m_sandboxer(sandboxer), m_teardown(false) {}
-
-void SandboxerClientMonitor::Start()
-{
- if (g_sandboxer_client_monitor_mock == NULL) {
- return;
- }
- return g_sandboxer_client_monitor_mock->Start();
-}
-
-void SandboxerClientMonitor::Stop()
-{
- if (g_sandboxer_client_monitor_mock == NULL) {
- return;
- }
- return g_sandboxer_client_monitor_mock->Stop();
-}
-
-bool SandboxerClientMonitor::Monitor(SandboxerAsyncWaitCall *call)
-{
- if (g_sandboxer_client_monitor_mock == NULL) {
- return true;
- }
- return g_sandboxer_client_monitor_mock->Monitor(call);
-}
-
-void MockSandboxerMonitor_SetMock(std::shared_ptr<SandboxerClientMonitorMock> mock)
-{
- g_sandboxer_client_monitor_mock = mock;
-}
diff --git a/test/mocks/rust_sandbox_api_mock.cc b/test/mocks/rust_sandbox_api_mock.cc
new file mode 100644
index 00000000..b595e4b8
--- /dev/null
+++ b/test/mocks/rust_sandbox_api_mock.cc
@@ -0,0 +1,103 @@
+/******************************************************************************
+ * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
+ * iSulad licensed under the Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
+ * PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ * Author: liuxu
+ * Create: 2024-11-22
+ * Description: provide rust sandbox api mock
+ ******************************************************************************/
+
+#include "rust_sandbox_api_mock.h"
+
+static std::shared_ptr<RustSandboxApiMock> g_rust_sandbox_api_mock = NULL;
+
+void RustSandboxApiMock_SetMock(std::shared_ptr<RustSandboxApiMock> mock)
+{
+ g_rust_sandbox_api_mock = mock;
+}
+
+ControllerHandle_t sandbox_api_build_controller(const char *sandboxer, const char *address)
+{
+ if (g_rust_sandbox_api_mock != nullptr) {
+ return g_rust_sandbox_api_mock->sandbox_api_build_controller(sandboxer, address);
+ }
+ return nullptr;
+}
+
+int sandbox_api_create(ControllerHandle_t chandle, const sandbox_create_request *request, sandbox_create_response *response)
+{
+ if (g_rust_sandbox_api_mock != nullptr) {
+ return g_rust_sandbox_api_mock->sandbox_api_create(chandle, request, response);
+ }
+ return 0;
+}
+
+int sandbox_api_start(ControllerHandle_t chandle, const sandbox_start_request *request, sandbox_start_response *response)
+{
+ if (g_rust_sandbox_api_mock != nullptr) {
+ return g_rust_sandbox_api_mock->sandbox_api_start(chandle, request, response);
+ }
+ return 0;
+}
+
+int sandbox_api_platform(ControllerHandle_t chandle, const sandbox_platform_request *request, sandbox_platform_response *response)
+{
+ if (g_rust_sandbox_api_mock != nullptr) {
+ return g_rust_sandbox_api_mock->sandbox_api_platform(chandle, request, response);
+ }
+ return 0;
+}
+
+int sandbox_api_stop(ControllerHandle_t chandle, const sandbox_stop_request *request)
+{
+ if (g_rust_sandbox_api_mock != nullptr) {
+ return g_rust_sandbox_api_mock->sandbox_api_stop(chandle, request);
+ }
+ return 0;
+}
+
+int sandbox_api_wait(ControllerHandle_t chandle, const sandbox_wait_request *request, sandbox_api_wait_callback callback)
+{
+ if (g_rust_sandbox_api_mock != nullptr) {
+ return g_rust_sandbox_api_mock->sandbox_api_wait(chandle, request, callback);
+ }
+ return 0;
+}
+
+int sandbox_api_status(ControllerHandle_t chandle, const sandbox_status_request *request, sandbox_status_response *response)
+{
+ if (g_rust_sandbox_api_mock != nullptr) {
+ return g_rust_sandbox_api_mock->sandbox_api_status(chandle, request, response);
+ }
+ return 0;
+}
+
+int sandbox_api_shutdown(ControllerHandle_t chandle, const sandbox_shutdown_request *request)
+{
+ if (g_rust_sandbox_api_mock != nullptr) {
+ return g_rust_sandbox_api_mock->sandbox_api_shutdown(chandle, request);
+ }
+ return 0;
+}
+
+int sandbox_api_metrics(ControllerHandle_t chandle, const sandbox_metrics_request *request, sandbox_metrics_response *response)
+{
+ if (g_rust_sandbox_api_mock != nullptr) {
+ return g_rust_sandbox_api_mock->sandbox_api_metrics(chandle, request, response);
+ }
+ return 0;
+}
+
+int sandbox_api_update(ControllerHandle_t chandle, const sandbox_update_request *request)
+{
+ if (g_rust_sandbox_api_mock != nullptr) {
+ return g_rust_sandbox_api_mock->sandbox_api_update(chandle, request);
+ }
+ return 0;
+}
diff --git a/test/mocks/rust_sandbox_api_mock.h b/test/mocks/rust_sandbox_api_mock.h
new file mode 100644
index 00000000..134d71e9
--- /dev/null
+++ b/test/mocks/rust_sandbox_api_mock.h
@@ -0,0 +1,39 @@
+/******************************************************************************
+ * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
+ * iSulad licensed under the Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
+ * PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ * Author: liuxu
+ * Create: 2024-11-22
+ * Description: provide rust sandbox api mock
+ ******************************************************************************/
+
+#ifndef _ISULAD_TEST_MOCKS_RUST_SANDBOX_API_MOCK_H
+#define _ISULAD_TEST_MOCKS_RUST_SANDBOX_API_MOCK_H
+
+#include <gmock/gmock.h>
+#include <isula_sandbox_api.h>
+
+class RustSandboxApiMock {
+public:
+ RustSandboxApiMock() = default;
+ MOCK_METHOD2(sandbox_api_build_controller, ControllerHandle_t(const char *sandboxer, const char *address));
+ MOCK_METHOD3(sandbox_api_create, int(ControllerHandle_t chandle, const sandbox_create_request *request, sandbox_create_response *response));
+ MOCK_METHOD3(sandbox_api_start, int(ControllerHandle_t chandle, const sandbox_start_request *request, sandbox_start_response *response));
+ MOCK_METHOD2(sandbox_api_stop, int(ControllerHandle_t chandle, const sandbox_stop_request *request));
+ MOCK_METHOD3(sandbox_api_wait, int(ControllerHandle_t chandle, const sandbox_wait_request *request, sandbox_api_wait_callback callback));
+ MOCK_METHOD3(sandbox_api_status, int(ControllerHandle_t chandle, const sandbox_status_request *request, sandbox_status_response *response));
+ MOCK_METHOD2(sandbox_api_shutdown, int(ControllerHandle_t chandle, const sandbox_shutdown_request *request));
+ MOCK_METHOD3(sandbox_api_metrics, int(ControllerHandle_t chandle, const sandbox_metrics_request *request, sandbox_metrics_response *response));
+ MOCK_METHOD3(sandbox_api_platform, int(ControllerHandle_t chandle, const sandbox_platform_request *request, sandbox_platform_response *response));
+ MOCK_METHOD2(sandbox_api_update, int(ControllerHandle_t chandle, const sandbox_update_request *request));
+};
+
+void RustSandboxApiMock_SetMock(std::shared_ptr<RustSandboxApiMock> mock);
+
+#endif // _ISULAD_TEST_MOCKS_RUST_SANDBOX_API_MOCK_H
diff --git a/test/mocks/sandbox_manager_mock.cc b/test/mocks/sandbox_manager_mock.cc
new file mode 100644
index 00000000..c3c32e52
--- /dev/null
+++ b/test/mocks/sandbox_manager_mock.cc
@@ -0,0 +1,42 @@
+/******************************************************************************
+ * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
+ * iSulad licensed under the Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
+ * PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ * Author: jikai
+ * Create: 2023-10-20
+ * Description: provide sandboxer controller mock
+ ******************************************************************************/
+
+#include "sandbox_manager_mock.h"
+
+namespace sandbox {
+static std::shared_ptr<MockSandboxManager> g_sandbox_manager_mock = nullptr;
+
+void MockSandboxManager_SetMock(std::shared_ptr<MockSandboxManager> mock)
+{
+ g_sandbox_manager_mock = mock;
+}
+
+SandboxManager *SandboxManager::GetInstance() noexcept
+{
+ if (g_sandbox_manager_mock != nullptr) {
+ return g_sandbox_manager_mock->GetInstance();
+ }
+ return nullptr;
+}
+
+std::shared_ptr<Sandbox> SandboxManager::GetSandbox(const std::string &idOrName)
+{
+ if (g_sandbox_manager_mock != nullptr) {
+ return g_sandbox_manager_mock->GetSandbox(idOrName);
+ }
+ return nullptr;
+}
+
+}
diff --git a/test/mocks/grpc_sandboxer_monitor_mock.h b/test/mocks/sandbox_manager_mock.h
similarity index 55%
rename from test/mocks/grpc_sandboxer_monitor_mock.h
rename to test/mocks/sandbox_manager_mock.h
index 0ab21e00..1378d5b7 100644
--- a/test/mocks/grpc_sandboxer_monitor_mock.h
+++ b/test/mocks/sandbox_manager_mock.h
@@ -8,26 +8,35 @@
* IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
* PURPOSE.
* See the Mulan PSL v2 for more details.
- * Author: xuxuepeng
- * Create: 2023-07-31
- * Description: provide grpc sandboxer client monitor mock
+ * Author: jikai
+ * Create: 2023-10-20
+ * Description: provide sandbox manager mock
******************************************************************************/
-#ifndef _ISULAD_TEST_MOCKS_GRPC_SANDBOXER_MONITOR_MOCK_H
-#define _ISULAD_TEST_MOCKS_GRPC_SANDBOXER_MONITOR_MOCK_H
+#ifndef _ISULAD_TEST_MOCKS_SANDBOX_MANAGER_MOCK_H
+#define _ISULAD_TEST_MOCKS_SANDBOX_MANAGER_MOCK_H
#include <gmock/gmock.h>
-#include "grpc_sandboxer_monitor.h"
+#include <memory>
-using namespace sandbox;
+#include "sandbox.h"
+#include "sandbox_manager.h"
-class SandboxerClientMonitorMock {
+namespace sandbox {
+
+class MockSandboxManager {
public:
- MOCK_METHOD1(Monitor, bool(SandboxerAsyncWaitCall *call));
- MOCK_METHOD0(Start, void());
- MOCK_METHOD0(Stop, void());
+ MockSandboxManager() = default;
+ virtual ~MockSandboxManager() = default;
+
+ MOCK_METHOD0(GetInstance, SandboxManager *());
+
+ MOCK_METHOD1(GetSandbox, std::shared_ptr<Sandbox>(const std::string &idOrName));
+
};
-void MockSandboxerMonitor_SetMock(std::shared_ptr<SandboxerClientMonitorMock> mock);
+void MockSandboxManager_SetMock(std::shared_ptr<MockSandboxManager> mock);
+
+}
-#endif // _ISULAD_TEST_MOCKS_GRPC_SANDBOXER_MONITOR_MOCK_H
+#endif
\ No newline at end of file
diff --git a/test/mocks/sandboxer_controller_mock.cc b/test/mocks/sandboxer_controller_mock.cc
new file mode 100644
index 00000000..4f7258d5
--- /dev/null
+++ b/test/mocks/sandboxer_controller_mock.cc
@@ -0,0 +1,116 @@
+/******************************************************************************
+ * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
+ * iSulad licensed under the Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
+ * PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ * Author: jikai
+ * Create: 2023-10-20
+ * Description: provide sandboxer controller mock
+ ******************************************************************************/
+
+#include "sandboxer_controller_mock.h"
+
+namespace sandbox {
+static std::shared_ptr<MockSandboxerController> g_sandboxer_controller_mock = nullptr;
+
+SandboxerController::SandboxerController(const std::string &sandboxer, const std::string &address)
+{
+}
+
+SandboxerController::~SandboxerController()
+{
+}
+
+void MockSandboxerController_SetMock(std::shared_ptr<MockSandboxerController> mock)
+{
+ g_sandboxer_controller_mock = mock;
+}
+
+bool SandboxerController::Init(Errors &error)
+{
+ if (g_sandboxer_controller_mock != nullptr) {
+ return g_sandboxer_controller_mock->Init(error);
+ }
+ return true;
+}
+
+bool SandboxerController::Create(const std::string &sandboxId,
+ const ControllerCreateParams &params,
+ Errors &error)
+{
+ if (g_sandboxer_controller_mock != nullptr) {
+ return g_sandboxer_controller_mock->Create(sandboxId, params, error);
+ }
+ return true;
+}
+
+std::unique_ptr<ControllerSandboxInfo> SandboxerController::Start(const std::string &sandboxId, Errors &error)
+{
+ if (g_sandboxer_controller_mock != nullptr) {
+ return g_sandboxer_controller_mock->Start(sandboxId, error);
+ }
+ return nullptr;
+}
+
+std::unique_ptr<ControllerPlatformInfo> SandboxerController::Platform(const std::string &sandboxId, Errors &error)
+{
+ if (g_sandboxer_controller_mock != nullptr) {
+ return g_sandboxer_controller_mock->Platform(sandboxId, error);
+ }
+ return nullptr;
+}
+
+bool SandboxerController::Update(sandbox_sandbox *apiSandbox,
+ string_array *fields, Errors &error)
+{
+ return g_sandboxer_controller_mock->Update(apiSandbox, fields, error);
+}
+
+bool SandboxerController::Stop(const std::string &sandboxId, uint32_t timeoutSecs, Errors &error)
+{
+ if (g_sandboxer_controller_mock != nullptr) {
+ return g_sandboxer_controller_mock->Stop(sandboxId, timeoutSecs, error);
+ }
+ return true;
+}
+
+bool SandboxerController::Wait(std::shared_ptr<SandboxStatusCallback> cb, const std::string &sandboxId, Errors &error)
+{
+ if (g_sandboxer_controller_mock != nullptr) {
+ return g_sandboxer_controller_mock->Wait(cb, sandboxId, error);
+ }
+ return true;
+}
+
+std::unique_ptr<ControllerSandboxStatus> SandboxerController::Status(const std::string &sandboxId, bool verbose,
+ Errors &error)
+{
+ if (g_sandboxer_controller_mock != nullptr) {
+ return g_sandboxer_controller_mock->Status(sandboxId, verbose, error);
+ }
+ return nullptr;
+}
+
+bool SandboxerController::Shutdown(const std::string &sandboxId, Errors &error)
+{
+ if (g_sandboxer_controller_mock != nullptr) {
+ return g_sandboxer_controller_mock->Shutdown(sandboxId, error);
+ }
+ return true;
+}
+
+bool SandboxerController::UpdateNetworkSettings(const std::string &sandboxId, const std::string &networkSettings,
+ Errors &error)
+{
+ if (g_sandboxer_controller_mock != nullptr) {
+ return g_sandboxer_controller_mock->UpdateNetworkSettings(sandboxId, networkSettings, error);
+ }
+ return true;
+}
+
+}
diff --git a/test/mocks/sandboxer_controller_mock.h b/test/mocks/sandboxer_controller_mock.h
new file mode 100644
index 00000000..be0f4016
--- /dev/null
+++ b/test/mocks/sandboxer_controller_mock.h
@@ -0,0 +1,52 @@
+/******************************************************************************
+ * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
+ * iSulad licensed under the Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
+ * PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ * Author: jikai
+ * Create: 2023-10-20
+ * Description: provide sandboxer controller mock
+ ******************************************************************************/
+
+#ifndef _ISULAD_TEST_MOCKS_SANDBOXER_CONTROLLER_MOCK_H
+#define _ISULAD_TEST_MOCKS_SANDBOXER_CONTROLLER_MOCK_H
+
+#include <gmock/gmock.h>
+#include <memory>
+
+#include "sandboxer_controller.h"
+
+namespace sandbox {
+
+class MockSandboxerController {
+public:
+ MockSandboxerController() = default;
+ virtual ~MockSandboxerController() = default;
+
+ MOCK_METHOD1(Init, bool(Errors &error));
+ MOCK_METHOD3(Create, bool(const std::string &sandboxId,
+ const ControllerCreateParams &params,
+ Errors &error));
+ MOCK_METHOD2(Start, std::unique_ptr<ControllerSandboxInfo>(const std::string &sandboxId, Errors &error));
+ MOCK_METHOD2(Platform, std::unique_ptr<ControllerPlatformInfo>(const std::string &sandboxId, Errors &error));
+ MOCK_METHOD3(Update, bool(sandbox_sandbox *apiSandbox,
+ string_array *fields, Errors &error));
+ MOCK_METHOD3(Stop, bool(const std::string &sandboxId, uint32_t timeoutSecs, Errors &error));
+ MOCK_METHOD3(Wait, bool(std::shared_ptr<SandboxStatusCallback> cb, const std::string &sandboxId, Errors &error));
+ MOCK_METHOD3(Status, std::unique_ptr<ControllerSandboxStatus>(const std::string &sandboxId, bool verbose,
+ Errors &error));
+ MOCK_METHOD2(Shutdown, bool(const std::string &sandboxId, Errors &error));
+ MOCK_METHOD3(UpdateNetworkSettings, bool(const std::string &sandboxId, const std::string &networkSettings,
+ Errors &error));
+};
+
+void MockSandboxerController_SetMock(std::shared_ptr<MockSandboxerController> mock);
+
+}
+
+#endif
\ No newline at end of file
diff --git a/test/mocks/sandboxer_sandbox_mock.cc b/test/mocks/sandboxer_sandbox_mock.cc
new file mode 100644
index 00000000..cce58842
--- /dev/null
+++ b/test/mocks/sandboxer_sandbox_mock.cc
@@ -0,0 +1,72 @@
+/******************************************************************************
+ * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
+ * iSulad licensed under the Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
+ * PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ * Author: liuxu
+ * Create: 2024-11-21
+ * Description: provide sandbox mock
+ ******************************************************************************/
+
+#include <gmock/gmock.h>
+#include "sandboxer_sandbox_mock.h"
+
+namespace sandbox {
+MockSandboxerSandbox *g_sandboxer_sandbox_mock = nullptr;
+
+SandboxerSandbox::SandboxerSandbox(const std::string id, const std::string &rootdir, const std::string &statedir, const std::string name,
+ const RuntimeInfo info, std::string netMode, std::string netNsPath, const runtime::v1::PodSandboxConfig sandboxConfig,
+ std::string image):Sandbox(id, rootdir, statedir, name, info, netMode,
+ netNsPath, sandboxConfig, image)
+{
+}
+
+void MockSandboxerSandbox_SetMock(MockSandboxerSandbox *mock)
+{
+ g_sandboxer_sandbox_mock = mock;
+}
+
+void SandboxerSandbox::LoadSandboxTasks() {}
+
+auto SandboxerSandbox::SaveSandboxTasks() -> bool
+{
+ if (g_sandboxer_sandbox_mock != nullptr) {
+ return g_sandboxer_sandbox_mock->SaveSandboxTasks();
+ }
+ return true;
+}
+
+auto SandboxerSandbox::AddSandboxTasks(sandbox_task *task) -> bool
+{
+ if (g_sandboxer_sandbox_mock != nullptr) {
+ return g_sandboxer_sandbox_mock->AddSandboxTasks(task);
+ }
+ return true;
+}
+
+auto SandboxerSandbox::GetAnySandboxTasks() -> std::string
+{
+ if (g_sandboxer_sandbox_mock != nullptr) {
+ return g_sandboxer_sandbox_mock->GetAnySandboxTasks();
+ }
+ return std::string("Nothing for sandboxer.");
+}
+
+void SandboxerSandbox::DeleteSandboxTasks(const char *containerId) {}
+
+auto SandboxerSandbox::AddSandboxTasksProcess(const char *containerId, sandbox_process *processes) -> bool
+{
+ if (g_sandboxer_sandbox_mock != nullptr) {
+ return g_sandboxer_sandbox_mock->AddSandboxTasksProcess(containerId, processes);
+ }
+ return true;
+}
+
+void SandboxerSandbox::DeleteSandboxTasksProcess(const char *containerId, const char *execId) {}
+
+}
\ No newline at end of file
diff --git a/test/mocks/sandboxer_sandbox_mock.h b/test/mocks/sandboxer_sandbox_mock.h
new file mode 100644
index 00000000..4f76e5fc
--- /dev/null
+++ b/test/mocks/sandboxer_sandbox_mock.h
@@ -0,0 +1,43 @@
+/******************************************************************************
+ * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
+ * iSulad licensed under the Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
+ * PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ * Author: liuxu
+ * Create: 2024-11-21
+ * Description: provide sandbox mock
+ ******************************************************************************/
+
+#ifndef _ISULAD_TEST_MOCKS_SANDBOXER_SANDBOX_MOCK_H
+#define _ISULAD_TEST_MOCKS_SANDBOXER_SANDBOX_MOCK_H
+
+#include <gmock/gmock.h>
+#include "sandbox_mock.h"
+#include "sandboxer_sandbox.h"
+
+namespace sandbox {
+
+class MockSandboxerSandbox : public MockSandbox {
+public:
+ MockSandboxerSandbox() = default;
+ virtual ~MockSandboxerSandbox() = default;
+
+ MOCK_METHOD0(LoadSandboxTasks, void());
+ MOCK_METHOD0(SaveSandboxTasks, bool());
+ MOCK_METHOD1(AddSandboxTasks, bool(sandbox_task *task));
+ MOCK_METHOD0(GetAnySandboxTasks, std::string());
+ MOCK_METHOD1(DeleteSandboxTasks, void(const char *containerId));
+ MOCK_METHOD2(AddSandboxTasksProcess, bool(const char *containerId, sandbox_process *processes));
+ MOCK_METHOD2(DeleteSandboxTasksProcess, void(const char *containerId, const char *execId));
+};
+
+void MockSandboxerSandbox_SetMock(MockSandboxerSandbox *mock);
+
+}
+
+#endif
diff --git a/test/mocks/shim_controller_mock.cc b/test/mocks/shim_controller_mock.cc
index e0ffc563..d9067e22 100644
--- a/test/mocks/shim_controller_mock.cc
+++ b/test/mocks/shim_controller_mock.cc
@@ -39,13 +39,6 @@ bool ShimController::Init(Errors &error)
return true;
}
-void ShimController::Destroy()
-{
- if (g_shim_controller_mock != nullptr) {
- g_shim_controller_mock->Destroy();
- }
-}
-
bool ShimController::Create(const std::string &sandboxId,
const ControllerCreateParams &params,
Errors &error)
@@ -72,33 +65,10 @@ std::unique_ptr<ControllerPlatformInfo> ShimController::Platform(const std::stri
return nullptr;
}
-std::string ShimController::Prepare(const std::string &sandboxId,
- const ControllerPrepareParams &params,
- Errors &error)
-{
- if (g_shim_controller_mock != nullptr) {
- return g_shim_controller_mock->Prepare(sandboxId, params, error);
- }
- return "";
-}
-
-bool ShimController::Purge(const std::string &sandboxId, const std::string &containerId,
- const std::string &execId, Errors &error)
+bool ShimController::Update(sandbox_sandbox *apiSandbox,
+ string_array *fields, Errors &error)
{
- if (g_shim_controller_mock != nullptr) {
- return g_shim_controller_mock->Purge(sandboxId, containerId, execId, error);
- }
- return true;
-}
-
-bool ShimController::UpdateResources(const std::string &sandboxId,
- const ControllerUpdateResourcesParams &params,
- Errors &error)
-{
- if (g_shim_controller_mock != nullptr) {
- return g_shim_controller_mock->UpdateResources(sandboxId, params, error);
- }
- return true;
+ return g_shim_controller_mock->Update(apiSandbox, fields, error);
}
bool ShimController::Stop(const std::string &sandboxId, uint32_t timeoutSecs, Errors &error)
diff --git a/test/mocks/shim_controller_mock.h b/test/mocks/shim_controller_mock.h
index 6d0de591..d3a1d0a5 100644
--- a/test/mocks/shim_controller_mock.h
+++ b/test/mocks/shim_controller_mock.h
@@ -29,20 +29,13 @@ public:
virtual ~MockShimController() = default;
MOCK_METHOD1(Init, bool(Errors &error));
- MOCK_METHOD0(Destroy, void());
MOCK_METHOD3(Create, bool(const std::string &sandboxId,
const ControllerCreateParams &params,
Errors &error));
MOCK_METHOD2(Start, std::unique_ptr<ControllerSandboxInfo>(const std::string &sandboxId, Errors &error));
MOCK_METHOD2(Platform, std::unique_ptr<ControllerPlatformInfo>(const std::string &sandboxId, Errors &error));
- MOCK_METHOD3(Prepare, std::string(const std::string &sandboxId,
- const ControllerPrepareParams &params,
- Errors &error));
- MOCK_METHOD4(Purge, bool(const std::string &sandboxId, const std::string &containerId,
- const std::string &execId, Errors &error));
- MOCK_METHOD3(UpdateResources, bool(const std::string &sandboxId,
- const ControllerUpdateResourcesParams &params,
- Errors &error));
+ MOCK_METHOD3(Update, bool(sandbox_sandbox *apiSandbox,
+ string_array *fields, Errors &error));
MOCK_METHOD3(Stop, bool(const std::string &sandboxId, uint32_t timeoutSecs, Errors &error));
MOCK_METHOD3(Wait, bool(std::shared_ptr<SandboxStatusCallback> cb, const std::string &sandboxId, Errors &error));
MOCK_METHOD3(Status, std::unique_ptr<ControllerSandboxStatus>(const std::string &sandboxId, bool verbose,
diff --git a/test/mocks/shim_sandbox_mock.cc b/test/mocks/shim_sandbox_mock.cc
new file mode 100644
index 00000000..ccefb424
--- /dev/null
+++ b/test/mocks/shim_sandbox_mock.cc
@@ -0,0 +1,72 @@
+/******************************************************************************
+ * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
+ * iSulad licensed under the Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
+ * PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ * Author: liuxu
+ * Create: 2024-11-21
+ * Description: provide sandbox mock
+ ******************************************************************************/
+
+#include <gmock/gmock.h>
+#include "shim_sandbox_mock.h"
+
+namespace sandbox {
+MockShimSandbox *g_shim_sandbox_mock = nullptr;
+
+ShimSandbox::ShimSandbox(const std::string id, const std::string &rootdir, const std::string &statedir, const std::string name,
+ const RuntimeInfo info, std::string netMode, std::string netNsPath, const runtime::v1::PodSandboxConfig sandboxConfig,
+ std::string image):Sandbox(id, rootdir, statedir, name, info, netMode,
+ netNsPath, sandboxConfig, image)
+{
+}
+
+void MockShimSandbox_SetMock(MockShimSandbox *mock)
+{
+ g_shim_sandbox_mock = mock;
+}
+
+void ShimSandbox::LoadSandboxTasks() {}
+
+auto ShimSandbox::SaveSandboxTasks() -> bool
+{
+ if (g_shim_sandbox_mock != nullptr) {
+ return g_shim_sandbox_mock->SaveSandboxTasks();
+ }
+ return true;
+}
+
+auto ShimSandbox::AddSandboxTasks(sandbox_task *task) -> bool
+{
+ if (g_shim_sandbox_mock != nullptr) {
+ return g_shim_sandbox_mock->AddSandboxTasks(task);
+ }
+ return true;
+}
+
+auto ShimSandbox::GetAnySandboxTasks() -> std::string
+{
+ if (g_shim_sandbox_mock != nullptr) {
+ return g_shim_sandbox_mock->GetAnySandboxTasks();
+ }
+ return std::string("Nothing for shim.");
+}
+
+void ShimSandbox::DeleteSandboxTasks(const char *containerId) {}
+
+auto ShimSandbox::AddSandboxTasksProcess(const char *containerId, sandbox_process *processes) -> bool
+{
+ if (g_shim_sandbox_mock != nullptr) {
+ return g_shim_sandbox_mock->AddSandboxTasksProcess(containerId, processes);
+ }
+ return true;
+}
+
+void ShimSandbox::DeleteSandboxTasksProcess(const char *containerId, const char *execId) {}
+
+}
\ No newline at end of file
diff --git a/test/mocks/shim_sandbox_mock.h b/test/mocks/shim_sandbox_mock.h
new file mode 100644
index 00000000..1b16a4cc
--- /dev/null
+++ b/test/mocks/shim_sandbox_mock.h
@@ -0,0 +1,43 @@
+/******************************************************************************
+ * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
+ * iSulad licensed under the Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
+ * PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ * Author: liuxu
+ * Create: 2024-11-21
+ * Description: provide sandbox mock
+ ******************************************************************************/
+
+#ifndef _ISULAD_TEST_MOCKS_SHIM_SANDBOX_MOCK_H
+#define _ISULAD_TEST_MOCKS_SHIM_SANDBOX_MOCK_H
+
+#include <gmock/gmock.h>
+#include "sandbox_mock.h"
+#include "shim_sandbox.h"
+
+namespace sandbox {
+
+class MockShimSandbox : public MockSandbox {
+public:
+ MockShimSandbox() = default;
+ virtual ~MockShimSandbox() = default;
+
+ MOCK_METHOD0(LoadSandboxTasks, void());
+ MOCK_METHOD0(SaveSandboxTasks, bool());
+ MOCK_METHOD1(AddSandboxTasks, bool(sandbox_task *task));
+ MOCK_METHOD0(GetAnySandboxTasks, std::string());
+ MOCK_METHOD1(DeleteSandboxTasks, void(const char *containerId));
+ MOCK_METHOD2(AddSandboxTasksProcess, bool(const char *containerId, sandbox_process *processes));
+ MOCK_METHOD2(DeleteSandboxTasksProcess, void(const char *containerId, const char *execId));
+};
+
+void MockShimSandbox_SetMock(MockShimSandbox *mock);
+
+}
+
+#endif
diff --git a/test/sandbox/controller/CMakeLists.txt b/test/sandbox/controller/CMakeLists.txt
index 0ba23735..d201872b 100644
--- a/test/sandbox/controller/CMakeLists.txt
+++ b/test/sandbox/controller/CMakeLists.txt
@@ -1,7 +1,5 @@
project(iSulad_UT)
-aux_source_directory(${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox/types grpc_sandbox_type_srcs)
-list(APPEND grpc_sandbox_type_srcs ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox.pb.cc)
list(APPEND grpc_sandbox_type_srcs ${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/v1/api_v1.pb.cc)
list(APPEND grpc_sandbox_type_srcs ${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/gogo.pb.cc)
add_subdirectory(sandboxer)
diff --git a/test/sandbox/controller/controller_common.cc b/test/sandbox/controller/controller_common.cc
index 5f870c34..8621dfd9 100644
--- a/test/sandbox/controller/controller_common.cc
+++ b/test/sandbox/controller/controller_common.cc
@@ -14,6 +14,7 @@
******************************************************************************/
#include "controller_common.h"
+#include "utils.h"
std::unique_ptr<sandbox::ControllerMountInfo> CreateTestMountInfo()
{
@@ -43,24 +44,40 @@ std::unique_ptr<sandbox::ControllerStreamInfo> CreateTestStreamInfo()
return streamInfo;
}
-std::unique_ptr<sandbox::ControllerPrepareParams> CreateTestPrepareParams()
+std::unique_ptr<CStructWrapper<sandbox_sandbox>> CreateTestUpdateApiSandbox()
{
- std::unique_ptr<sandbox::ControllerPrepareParams> params(new sandbox::ControllerPrepareParams());
- params->containerId = DUMMY_CONTAINER_ID;
- params->execId = DUMMY_EXEC_ID;
- params->spec = std::unique_ptr<std::string>(new std::string("{spec: test}"));
- params->rootfs.push_back(std::move(CreateTestMountInfo()));
- params->rootfs.push_back(std::move(CreateTestMountInfo()));
- params->streamInfo = CreateTestStreamInfo();
- return params;
+ sandbox_sandbox *apiSandbox = nullptr;
+
+ auto apiSandbox_wrapper = makeUniquePtrCStructWrapper<sandbox_sandbox>(free_sandbox_sandbox);
+ if (apiSandbox_wrapper == nullptr) {
+ return nullptr;
+ }
+ apiSandbox = apiSandbox_wrapper->get();
+
+ apiSandbox->sandbox_id = util_strdup_s(DUMMY_SANDBOX_ID.c_str());
+ apiSandbox->sandboxer = util_strdup_s(DUMMY_SANDBOXER.c_str());
+
+ return apiSandbox_wrapper;
}
-std::unique_ptr<sandbox::ControllerUpdateResourcesParams> CreateTestUpdateResourcesParams(
- google::protobuf::Map<std::string, std::string> &annotations)
+std::unique_ptr<CStructWrapper<string_array>> CreateTestFields()
{
- std::unique_ptr<std::string> resources(new std::string("{cpu: 12}"));
- std::unique_ptr<sandbox::ControllerUpdateResourcesParams> params(
- new sandbox::ControllerUpdateResourcesParams{DUMMY_SANDBOX_ID, std::move(resources), annotations}
- );
- return params;
-}
+ size_t fields_len = 1;
+ string_array *fields = nullptr;
+
+ auto fields_wrapper = makeUniquePtrCStructWrapper<string_array>(util_free_string_array);
+ if (fields_wrapper == nullptr) {
+ return nullptr;
+ }
+ fields = fields_wrapper->get();
+
+ fields = util_string_array_new(fields_len);
+ if (fields == nullptr) {
+ return nullptr;
+ }
+ if (util_append_string_array(fields, DUMMY_SANDBOX_EXTENSIONS_TASKS.c_str())) {
+ return nullptr;
+ }
+
+ return fields_wrapper;
+}
\ No newline at end of file
diff --git a/test/sandbox/controller/controller_common.h b/test/sandbox/controller/controller_common.h
index c01ae83c..b41f24e2 100644
--- a/test/sandbox/controller/controller_common.h
+++ b/test/sandbox/controller/controller_common.h
@@ -16,6 +16,8 @@
#ifndef _ISULAD_TEST_SANDBOX_CONTROLLER_CONTROLLER_COMMON_H
#define _ISULAD_TEST_SANDBOX_CONTROLLER_CONTROLLER_COMMON_H
#include "controller.h"
+#include "cstruct_wrapper.h"
+#include "utils_array.h"
const std::string DUMMY_SANDBOX_ID = "604db93a33ec4c7787e4f369338f5887";
const std::string DUMMY_CONTAINER_ID = "504db93a32ec4c9789e4d369a38f3889";
@@ -24,6 +26,8 @@ const uint64_t SECOND_TO_NANOS = 1000000000;
const uint64_t DUMMY_CREATE_AT = 1588 * SECOND_TO_NANOS + 1588;
const uint64_t DUMMY_EXITED_AT = 1688 * SECOND_TO_NANOS + 1588;
const std::string DUMMY_TASK_ADDRESS = "vsock://18982:1";
+const std::string DUMMY_SANDBOXER = "vmm";
+const std::string DUMMY_SANDBOX_EXTENSIONS_TASKS = "extensions.tasks";
std::unique_ptr<sandbox::ControllerMountInfo> CreateTestMountInfo();
@@ -31,9 +35,8 @@ std::unique_ptr<sandbox::ControllerCreateParams> CreateTestCreateParams();
std::unique_ptr<sandbox::ControllerStreamInfo> CreateTestStreamInfo();
-std::unique_ptr<sandbox::ControllerPrepareParams> CreateTestPrepareParams();
+std::unique_ptr<CStructWrapper<sandbox_sandbox>> CreateTestUpdateApiSandbox();
-std::unique_ptr<sandbox::ControllerUpdateResourcesParams> CreateTestUpdateResourcesParams(
- google::protobuf::Map<std::string, std::string> &annotations);
+std::unique_ptr<CStructWrapper<string_array>> CreateTestFields();
#endif // _ISULAD_TEST_SANDBOX_CONTROLLER_CONTROLLER_COMMON_H
\ No newline at end of file
diff --git a/test/sandbox/controller/manager/CMakeLists.txt b/test/sandbox/controller/manager/CMakeLists.txt
index 6e8c9052..1d8ca372 100644
--- a/test/sandbox/controller/manager/CMakeLists.txt
+++ b/test/sandbox/controller/manager/CMakeLists.txt
@@ -4,14 +4,12 @@ SET(EXE controller_manager_ut)
add_executable(${EXE}
${grpc_sandbox_type_srcs}
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox.pb.cc
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/v1/api_v1.pb.cc
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/gogo.pb.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/utils/cpputils/errors.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/controller/sandboxer/sandboxer_controller.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/controller/controller_manager.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/sandboxer/controller/sandboxer_controller.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/controller_manager.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../test/mocks/grpc_sandboxer_client_mock.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../test/mocks/controller_stub_mock.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../test/mocks/isulad_config_mock.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../test/mocks/shim_controller_mock.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../test/sandbox/controller/controller_common.cc
@@ -25,10 +23,11 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/config
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/entry/cri
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/executor
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/controller
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/controller/sandboxer
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/controller/sandboxer/client
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/controller/shim
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/sandboxer
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/sandboxer/controller
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/sandboxer/controller/client
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/shim/controller
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/common
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/utils/cutils
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/utils/cutils/map
diff --git a/test/sandbox/controller/sandboxer/CMakeLists.txt b/test/sandbox/controller/sandboxer/CMakeLists.txt
index e77c2e6d..11689cae 100644
--- a/test/sandbox/controller/sandboxer/CMakeLists.txt
+++ b/test/sandbox/controller/sandboxer/CMakeLists.txt
@@ -2,4 +2,3 @@ project(iSulad_UT)
add_subdirectory(sandboxer_client)
add_subdirectory(sandboxer_controller)
-add_subdirectory(async_wait_call)
diff --git a/test/sandbox/controller/sandboxer/async_wait_call/CMakeLists.txt b/test/sandbox/controller/sandboxer/async_wait_call/CMakeLists.txt
deleted file mode 100644
index 0631988a..00000000
--- a/test/sandbox/controller/sandboxer/async_wait_call/CMakeLists.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-project(iSulad_UT)
-
-SET(EXE sandboxer_client_async_wait_call_ut)
-
-add_executable(${EXE}
- ${grpc_sandbox_type_srcs}
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller/sandboxer/client/grpc_async_wait_call.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller/sandboxer/client/grpc_client_utils.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cpputils/errors.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/mocks/controller_stub_mock.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/async_wait_call_ut.cc)
-
-target_include_directories(${EXE} PUBLIC
- ${GTEST_INCLUDE_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/sandbox/controller
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/sandbox/controller/sandboxer/async_wait_call
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/mocks
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/entry/cri
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller/sandboxer
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller/sandboxer/client
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/common
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cutils
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cutils/map
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/sha256
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cpputils
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/cri
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/v1
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/google/protobuf
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox/types
-)
-
-target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} libutils_ut -lgrpc -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
-target_link_libraries(${EXE} -Wl,--as-needed ${ISULAD_ABSL_USED_TARGETS})
-add_test(NAME ${EXE} COMMAND ${EXE} --gtest_output=xml:${EXE}-Results.xml)
-set_tests_properties(${EXE} PROPERTIES TIMEOUT 120)
diff --git a/test/sandbox/controller/sandboxer/async_wait_call/async_wait_call_ut.cc b/test/sandbox/controller/sandboxer/async_wait_call/async_wait_call_ut.cc
deleted file mode 100644
index 1a58344c..00000000
--- a/test/sandbox/controller/sandboxer/async_wait_call/async_wait_call_ut.cc
+++ /dev/null
@@ -1,115 +0,0 @@
-/******************************************************************************
- * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
- * iSulad licensed under the Mulan PSL v2.
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
- * You may obtain a copy of Mulan PSL v2 at:
- * http://license.coscl.org.cn/MulanPSL2
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
- * PURPOSE.
- * See the Mulan PSL v2 for more details.
- * Author: xuxuepeng
- * Create: 2023-08-01
- * Description: Async wait call UT
- ******************************************************************************/
-
-#include "gtest/gtest.h"
-#include "grpc_async_wait_call.h"
-#include "dummy_monitor_utils.h"
-#include "controller_stub_mock.h"
-#include "grpc_client_utils.h"
-#include "controller.h"
-
-class SandboxerAsyncWaitCallWrapper : public sandbox::SandboxerAsyncWaitCall {
-public:
- SandboxerAsyncWaitCallWrapper(std::shared_ptr<sandbox::SandboxStatusCallback> cb,
- const std::string &sandboxId, const std::string &sandboxer)
- : sandbox::SandboxerAsyncWaitCall(cb, sandboxId, sandboxer) {}
- ~SandboxerAsyncWaitCallWrapper() = default;
-
- grpc::ClientAsyncResponseReaderInterface<containerd::services::sandbox::v1::ControllerWaitResponse> &GetReader()
- {
- return *m_responseReader;
- }
-};
-
-class AsyncWaitCallTest : public testing::Test {
-protected:
- void SetUp() override
- {
- m_sandboxId = "8040f13d54889ad4cd";
- m_sandboxer = "test_sandboxer";
- m_callback = std::shared_ptr<DummyCallback>(new DummyCallback());
- m_call = std::unique_ptr<sandbox::SandboxerAsyncWaitCall>(new sandbox::SandboxerAsyncWaitCall(m_callback, m_sandboxId,
- m_sandboxer));
- m_stub = std::unique_ptr<DummyControllerStub>(NewDummyControllerStub());
- m_stub_mock = std::make_shared<MockControllerStub>();
- MockControllerStub_SetMock(m_stub_mock);
- }
-
- void TearDown() override
- {
- MockControllerStub_SetMock(nullptr);
- }
-
- std::string m_sandboxId;
- std::string m_sandboxer;
- std::shared_ptr<DummyCallback> m_callback;
- std::unique_ptr<sandbox::SandboxerAsyncWaitCall> m_call;
- std::unique_ptr<DummyControllerStub> m_stub;
- std::shared_ptr<MockControllerStub> m_stub_mock;
- grpc::CompletionQueue m_cq;
-};
-
-TEST_F(AsyncWaitCallTest, CallStatusOK)
-{
- auto reader = new DummyClientAsyncResponseReader();
- auto timestamp = google::protobuf::Timestamp();
- timestamp.set_seconds(123456);
- reader->SetExitAt(timestamp);
- reader->SetExitStatus(1);
- reader->SetStatus(grpc::Status::OK);
- EXPECT_CALL(*m_stub_mock, PrepareAsyncWaitRaw).WillOnce(testing::Return(reader));
- EXPECT_TRUE(m_call->Call(*m_stub, m_cq));
- EXPECT_EQ(m_call->HandleResponse(), sandbox::SANDBOXER_ASYNC_WAIT_STATUS_OK);
- EXPECT_EQ(m_callback->GetStatus(), ASYNC_WAIT_CALL_STATUS_EXIT);
- EXPECT_EQ(m_callback->GetExitStatus(), 1);
- EXPECT_EQ(m_callback->GetExitedAt(), TimestampToNanos(timestamp));
-}
-
-TEST_F(AsyncWaitCallTest, CallStatusError)
-{
- auto reader = new DummyClientAsyncResponseReader();
- reader->SetStatus(grpc::Status(grpc::StatusCode::PERMISSION_DENIED, "Permission denied"));
- EXPECT_CALL(*m_stub_mock, PrepareAsyncWaitRaw).WillOnce(testing::Return(reader));
- EXPECT_TRUE(m_call->Call(*m_stub, m_cq));
- EXPECT_EQ(m_call->HandleResponse(), sandbox::SANDBOXER_ASYNC_WAIT_STATUS_ERROR);
- EXPECT_EQ(m_callback->GetStatus(), ASYNC_WAIT_CALL_STATUS_EXIT);
-}
-
-TEST_F(AsyncWaitCallTest, CallStatusNotFound)
-{
- auto reader = new DummyClientAsyncResponseReader();
- reader->SetStatus(grpc::Status(grpc::StatusCode::NOT_FOUND, "Not found"));
- EXPECT_CALL(*m_stub_mock, PrepareAsyncWaitRaw).WillOnce(testing::Return(reader));
- EXPECT_TRUE(m_call->Call(*m_stub, m_cq));
- EXPECT_EQ(m_call->HandleResponse(), sandbox::SANDBOXER_ASYNC_WAIT_STATUS_NOT_FOUND);
- EXPECT_EQ(m_callback->GetStatus(), ASYNC_WAIT_CALL_STATUS_EXIT);
-}
-
-TEST_F(AsyncWaitCallTest, CallStatusUnavailable)
-{
- auto reader = new DummyClientAsyncResponseReader();
- reader->SetStatus(grpc::Status(grpc::StatusCode::UNAVAILABLE, "Unavailable"));
- EXPECT_CALL(*m_stub_mock, PrepareAsyncWaitRaw).WillOnce(testing::Return(reader));
- EXPECT_TRUE(m_call->Call(*m_stub, m_cq));
- EXPECT_EQ(m_call->HandleResponse(), sandbox::SANDBOXER_ASYNC_WAIT_STATUS_RETRY);
- EXPECT_EQ(m_callback->GetStatus(), ASYNC_WAIT_CALL_STATUS_PENDING);
-}
-
-TEST_F(AsyncWaitCallTest, CallStatusPrepareAsyncWaitFailed)
-{
- EXPECT_CALL(*m_stub_mock, PrepareAsyncWaitRaw).WillOnce(testing::Return(nullptr));
- EXPECT_FALSE(m_call->Call(*m_stub, m_cq));
- EXPECT_EQ(m_callback->GetStatus(), ASYNC_WAIT_CALL_STATUS_EXIT);
-}
diff --git a/test/sandbox/controller/sandboxer/async_wait_call/dummy_monitor_utils.h b/test/sandbox/controller/sandboxer/async_wait_call/dummy_monitor_utils.h
deleted file mode 100644
index 7e98d844..00000000
--- a/test/sandbox/controller/sandboxer/async_wait_call/dummy_monitor_utils.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/******************************************************************************
- * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
- * iSulad licensed under the Mulan PSL v2.
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
- * You may obtain a copy of Mulan PSL v2 at:
- * http://license.coscl.org.cn/MulanPSL2
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
- * PURPOSE.
- * See the Mulan PSL v2 for more details.
- * Author: xuxuepeng
- * Create: 2023-08-01
- * Description: provide dummy class definition for monitor unit tests
- *********************************************************************************/
-
-#ifndef DUMMY_MONITOR_UTILS_H_
-#define DUMMY_MONITOR_UTILS_H_
-
-#include "sandbox.pb.h"
-#include "sandbox.grpc.pb.h"
-
-#include "controller.h"
-
-class DummyClientAsyncResponseReader: public
- grpc::ClientAsyncResponseReaderInterface<containerd::services::sandbox::v1::ControllerWaitResponse> {
-public:
- DummyClientAsyncResponseReader() = default;
- ~DummyClientAsyncResponseReader() = default;
-
- void StartCall() override {}
-
- void ReadInitialMetadata(void *tag) override {}
-
- void Finish(containerd::services::sandbox::v1::ControllerWaitResponse *response, grpc::Status *status,
- void *tag) override
- {
- response->set_exit_status(m_exitStatus);
- response->mutable_exited_at()->CopyFrom(m_exitedAt);
- *status = m_status;
- m_tag = tag;
- }
-
- void SetExitAt(const google::protobuf::Timestamp &exitAt)
- {
- m_exitedAt = exitAt;
- }
-
- void SetExitStatus(uint32_t status)
- {
- m_exitStatus = status;
- }
-
- void SetStatus(grpc::Status status)
- {
- m_status = status;
- }
-
- void *GetTag()
- {
- return m_tag;
- }
-
-private:
- google::protobuf::Timestamp m_exitedAt;
- uint32_t m_exitStatus;
- containerd::services::sandbox::v1::ControllerWaitResponse *m_response;
- grpc::Status m_status;
- void *m_tag;
-};
-
-enum AsyncWaitCallStatus {
- ASYNC_WAIT_CALL_STATUS_UNKNOWN,
- ASYNC_WAIT_CALL_STATUS_READY,
- ASYNC_WAIT_CALL_STATUS_EXIT,
- ASYNC_WAIT_CALL_STATUS_PENDING,
-};
-
-class DummyCallback: public sandbox::SandboxStatusCallback {
-public:
- DummyCallback()
- {
- m_status = ASYNC_WAIT_CALL_STATUS_UNKNOWN;
- }
- ~DummyCallback() = default;
-
- void OnSandboxReady() override
- {
- m_status = ASYNC_WAIT_CALL_STATUS_READY;
- }
- void OnSandboxPending() override
- {
- m_status = ASYNC_WAIT_CALL_STATUS_PENDING;
- }
- void OnSandboxExit(const sandbox::ControllerExitInfo &exitInfo) override
- {
- m_status = ASYNC_WAIT_CALL_STATUS_EXIT;
- m_exitStatus = exitInfo.exitStatus;
- m_exitedAt = exitInfo.exitedAt;
- }
-
- AsyncWaitCallStatus GetStatus()
- {
- return m_status;
- }
-
- uint32_t GetExitStatus()
- {
- return m_exitStatus;
- }
-
- uint64_t GetExitedAt()
- {
- return m_exitedAt;
- }
-private:
- AsyncWaitCallStatus m_status;
- uint32_t m_exitStatus;
- uint64_t m_exitedAt;
-};
-
-#endif // DUMMY_MONITOR_UTILS_H_
\ No newline at end of file
diff --git a/test/sandbox/controller/sandboxer/sandboxer_client/CMakeLists.txt b/test/sandbox/controller/sandboxer/sandboxer_client/CMakeLists.txt
index 881797c6..3a136489 100644
--- a/test/sandbox/controller/sandboxer/sandboxer_client/CMakeLists.txt
+++ b/test/sandbox/controller/sandboxer/sandboxer_client/CMakeLists.txt
@@ -4,14 +4,11 @@ SET(EXE controller_sandboxer_client_ut)
add_executable(${EXE}
${grpc_sandbox_type_srcs}
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox.pb.cc
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox.grpc.pb.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller/sandboxer/client/grpc_sandboxer_client.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller/sandboxer/client/grpc_client_utils.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/sandboxer/controller/client/grpc_sandboxer_client.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cpputils/errors.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/mocks/controller_stub_mock.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/mocks/grpc_sandboxer_monitor_mock.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/mocks/grpc_async_wait_call_mock.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cpputils/transform.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/mocks/sandbox_manager_mock.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/mocks/rust_sandbox_api_mock.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/sandbox/controller/controller_common.cc
${CMAKE_CURRENT_SOURCE_DIR}/sandboxer_client_ut.cc)
@@ -19,10 +16,12 @@ target_include_directories(${EXE} PUBLIC
${GTEST_INCLUDE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/sandbox/controller
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/mocks
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/config
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/entry/cri
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller/sandboxer
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller/sandboxer/client
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/sandboxer
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/sandboxer/controller
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/sandboxer/controller/client
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/common
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cutils
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cutils/map
@@ -30,9 +29,6 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cpputils
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/v1
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/google/protobuf
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox/types
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} libutils_ut -lgrpc -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
diff --git a/test/sandbox/controller/sandboxer/sandboxer_client/sandboxer_client_ut.cc b/test/sandbox/controller/sandboxer/sandboxer_client/sandboxer_client_ut.cc
index 3b02d95d..019e777c 100644
--- a/test/sandbox/controller/sandboxer/sandboxer_client/sandboxer_client_ut.cc
+++ b/test/sandbox/controller/sandboxer/sandboxer_client/sandboxer_client_ut.cc
@@ -13,21 +13,16 @@
* Description: Sandboxer client UT
******************************************************************************/
+#include <isula_libutils/json_common.h>
+
#include "gtest/gtest.h"
-#include "controller_stub_mock.h"
#include "grpc_sandboxer_client.h"
+#include "grpc_sandboxer_client_mock.h"
+#include "rust_sandbox_api_mock.h"
+#include "sandbox_manager_mock.h"
#include "controller_common.h"
#include "controller.h"
-
-class SandboxerClientWrapper : public sandbox::SandboxerClient {
-public:
- SandboxerClientWrapper(const std::string &sandboxer, const std::string &address) : SandboxerClient(sandboxer, address)
- {
- m_stub = NewDummyControllerStub();
- }
-
- ~SandboxerClientWrapper() = default;
-};
+#include "utils.h"
class ControllerSandboxerClientTest : public testing::Test {
protected:
@@ -35,78 +30,38 @@ protected:
{
m_sandboxer = "sandboxer";
m_address = "/tmp/sandboxer.sock";
+ ControllerHandle_t handle_ptr = (ControllerHandle_t)(0x1); // just not nullptr
+
+ m_sandboxManagerMock = std::make_shared<MockSandboxManager>();
+ MockSandboxManager_SetMock(m_sandboxManagerMock);
+ m_rustSandboxApiMock = std::make_shared<RustSandboxApiMock>();
+ RustSandboxApiMock_SetMock(m_rustSandboxApiMock);
- m_sandboxerClient = std::make_shared<SandboxerClientWrapper>(m_sandboxer, m_address);
- m_stub = std::make_shared<MockControllerStub>();
- MockControllerStub_SetMock(m_stub);
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_build_controller).Times(1).WillOnce(testing::DoAll(testing::Return(handle_ptr)));
+ m_sandboxerClient = std::make_shared<SandboxerClient>(m_sandboxer, m_address);
}
void TearDown() override
{
- MockControllerStub_SetMock(nullptr);
+ MockSandboxManager_SetMock(nullptr);
+ RustSandboxApiMock_SetMock(nullptr);
}
std::string m_sandboxer;
std::string m_address;
-
- std::shared_ptr<MockControllerStub> m_stub;
- std::shared_ptr<SandboxerClientWrapper> m_sandboxerClient;
+ std::shared_ptr<SandboxerClient> m_sandboxerClient;
+ std::shared_ptr<MockSandboxManager> m_sandboxManagerMock = nullptr;
+ std::shared_ptr<RustSandboxApiMock> m_rustSandboxApiMock = nullptr;
};
-static std::unique_ptr<containerd::services::sandbox::v1::ControllerStartResponse> CreateTestGrpcStartResponse()
-{
- std::unique_ptr<containerd::services::sandbox::v1::ControllerStartResponse> response(
- new containerd::services::sandbox::v1::ControllerStartResponse());
- response->set_sandbox_id(DUMMY_SANDBOX_ID);
- response->set_pid(1);
- response->mutable_created_at()->set_seconds(DUMMY_CREATE_AT / SECOND_TO_NANOS);
- response->mutable_created_at()->set_nanos(DUMMY_CREATE_AT % SECOND_TO_NANOS);
- response->mutable_labels()->insert({"label1", "value1"});
- return response;
-}
-
-// Create platform response for test.
-static std::unique_ptr<containerd::services::sandbox::v1::ControllerPlatformResponse> CreateTestPlatformResponse()
-{
- std::unique_ptr<containerd::services::sandbox::v1::ControllerPlatformResponse> response(
- new containerd::services::sandbox::v1::ControllerPlatformResponse()
- );
- response->mutable_platform()->set_os("linux");
- response->mutable_platform()->set_architecture("amd64");
- response->mutable_platform()->set_variant("ubuntu");
- return response;
-}
-
-// Create status response for test
-static std::unique_ptr<containerd::services::sandbox::v1::ControllerStatusResponse> CreateTestStatusResponse()
-{
- std::unique_ptr<containerd::services::sandbox::v1::ControllerStatusResponse> response(
- new containerd::services::sandbox::v1::ControllerStatusResponse()
- );
- response->set_sandbox_id(DUMMY_SANDBOX_ID);
- response->set_state("running");
- response->set_pid(1);
- response->set_task_address(DUMMY_TASK_ADDRESS);
- response->mutable_created_at()->set_seconds(DUMMY_CREATE_AT / SECOND_TO_NANOS);
- response->mutable_created_at()->set_nanos(DUMMY_CREATE_AT % SECOND_TO_NANOS);
- response->mutable_exited_at()->set_seconds(DUMMY_CREATE_AT / SECOND_TO_NANOS);
- response->mutable_exited_at()->set_nanos(DUMMY_CREATE_AT % SECOND_TO_NANOS);
- response->mutable_info()->insert({"info1", "value1"});
- response->mutable_extra()->set_value("{extra: test}");
- return response;
-}
-
/************* Unit tests for Create *************/
TEST_F(ControllerSandboxerClientTest, CreateTestSucceed)
{
Errors err;
std::unique_ptr<sandbox::ControllerCreateParams> params = CreateTestCreateParams();
- // Fake a grpc create response.
- containerd::services::sandbox::v1::ControllerCreateResponse response;
- response.set_sandbox_id(DUMMY_SANDBOX_ID);
- // Set response to return sandbox_id, and return OK for stub_->Create().
- EXPECT_CALL(*m_stub, Create).Times(1).WillOnce(testing::DoAll(testing::SetArgPointee<2>(response),
- testing::Return(grpc::Status::OK)));
+
+ // Set response to return sandbox_id, and return OK for sandbox_api_create().
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_create).Times(1).WillOnce(testing::DoAll(testing::Return(0)));
EXPECT_TRUE(m_sandboxerClient->Create(DUMMY_SANDBOX_ID, *params, err));
EXPECT_TRUE(err.Empty());
}
@@ -117,7 +72,7 @@ TEST_F(ControllerSandboxerClientTest, CreateTestNullConfig)
std::unique_ptr<sandbox::ControllerCreateParams> params(new sandbox::ControllerCreateParams());
params->config = nullptr;
// Stub should not be called
- EXPECT_CALL(*m_stub, Create).Times(0);
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_create).Times(0);
EXPECT_FALSE(m_sandboxerClient->Create(DUMMY_SANDBOX_ID, *params, err));
EXPECT_FALSE(err.Empty());
EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("Failed to init create request for sandboxer create request"));
@@ -128,13 +83,9 @@ TEST_F(ControllerSandboxerClientTest, CreateTestNullMount)
Errors err;
std::unique_ptr<sandbox::ControllerCreateParams> params = CreateTestCreateParams();
params->mounts.push_back(nullptr);
- containerd::services::sandbox::v1::ControllerCreateRequest request;
// Save request to check mount size.
- EXPECT_CALL(*m_stub, Create).Times(1).WillOnce(testing::DoAll(testing::SaveArg<1>(&request),
- testing::Return(grpc::Status::OK)));
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_create).Times(1).WillOnce(testing::DoAll(testing::Return(0)));
EXPECT_TRUE(m_sandboxerClient->Create(DUMMY_SANDBOX_ID, *params, err));
- // The nullptr pushed in params should not be counted.
- EXPECT_EQ(request.rootfs_size(), 1);
EXPECT_TRUE(err.Empty());
}
@@ -142,22 +93,65 @@ TEST_F(ControllerSandboxerClientTest, CreateTestStatusNotOK)
{
Errors err;
std::unique_ptr<sandbox::ControllerCreateParams> params = CreateTestCreateParams();
- // Fake a grpc create response.
- containerd::services::sandbox::v1::ControllerCreateResponse response;
- response.set_sandbox_id(DUMMY_SANDBOX_ID);
- EXPECT_CALL(*m_stub, Create).Times(1).WillOnce(testing::Return(grpc::Status(grpc::StatusCode::ABORTED, "gRPC Abort")));
+
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_create).Times(1).WillOnce(testing::Return(-1));
EXPECT_FALSE(m_sandboxerClient->Create(DUMMY_SANDBOX_ID, *params, err));
- EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("gRPC Abort"));
}
/************* Unit tests for Start *************/
+static std::unique_ptr<CStructWrapper<json_map_string_string>> GetMockLabels()
+{
+ json_map_string_string *labels = nullptr;
+ size_t len = 1;
+
+ auto labels_wrapper = makeUniquePtrCStructWrapper<json_map_string_string>(free_json_map_string_string);
+ if (labels_wrapper == nullptr) {
+ return nullptr;
+ }
+ labels = labels_wrapper->get();
+
+ labels->keys = (char **)util_smart_calloc_s(sizeof(char *), len);
+ if (labels->keys == nullptr) {
+ return nullptr;
+ }
+ labels->keys[0] = util_strdup_s("label1");
+ labels->values = (char **)util_smart_calloc_s(sizeof(char *), len);
+ if (labels->values == nullptr) {
+ return nullptr;
+ }
+ labels->values[0] = util_strdup_s("value1");
+ labels->len = len;
+
+ return labels_wrapper;
+}
+
+static std::unique_ptr<CStructWrapper<sandbox_start_response>> GetMockSandboxStartResponse()
+{
+ sandbox_start_response *reponse = nullptr;
+
+ auto reponse_wrapper = makeUniquePtrCStructWrapper<sandbox_start_response>(free_sandbox_start_response);
+ if (reponse_wrapper == nullptr) {
+ return nullptr;
+ }
+ reponse = reponse_wrapper->get();
+
+ reponse->sandbox_id = util_strdup_s(DUMMY_SANDBOX_ID.c_str());
+ reponse->pid = 1;
+ reponse->created_at = DUMMY_CREATE_AT;
+ reponse->address = util_strdup_s(DUMMY_TASK_ADDRESS.c_str());
+ reponse->version = 0;
+ reponse->labels = GetMockLabels()->move();
+
+ return reponse_wrapper;
+}
+
TEST_F(ControllerSandboxerClientTest, StartTestSucceed)
{
Errors err;
sandbox::ControllerSandboxInfo sandboxInfo;
- std::unique_ptr<containerd::services::sandbox::v1::ControllerStartResponse> response = CreateTestGrpcStartResponse();
- EXPECT_CALL(*m_stub, Start).Times(1).WillOnce(testing::DoAll(testing::SetArgPointee<2>(*response),
- testing::Return(grpc::Status::OK)));
+
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_start).Times(1).WillOnce(testing::DoAll(testing::SetArgPointee<2>(*(GetMockSandboxStartResponse()->move())),
+ testing::Return(0)));
EXPECT_TRUE(m_sandboxerClient->Start(DUMMY_SANDBOX_ID, sandboxInfo, err));
EXPECT_TRUE(err.Empty());
EXPECT_EQ(sandboxInfo.id, DUMMY_SANDBOX_ID);
@@ -171,128 +165,55 @@ TEST_F(ControllerSandboxerClientTest, StartTestStatusNotOK)
{
Errors err;
sandbox::ControllerSandboxInfo sandboxInfo;
- EXPECT_CALL(*m_stub, Start).Times(1).WillOnce(testing::Return(grpc::Status(grpc::StatusCode::ABORTED, "gRPC Abort")));
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_start).Times(1).WillOnce(testing::Return(-1));
EXPECT_FALSE(m_sandboxerClient->Start(DUMMY_SANDBOX_ID, sandboxInfo, err));
- EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("gRPC Abort"));
-}
-
-/************* Unit tests for Prepare *************/
-TEST_F(ControllerSandboxerClientTest, PrepareTestSucceed)
-{
- Errors err;
- std::string bundle;
- std::unique_ptr<sandbox::ControllerPrepareParams> params = CreateTestPrepareParams();
- // Fake a grpc prepare response.
- containerd::services::sandbox::v1::PrepareResponse response;
- response.set_bundle("/tmp/bundle");
- // Set response to return bundle, and return OK for stub_->Prepare().
- EXPECT_CALL(*m_stub, Prepare).Times(1).WillOnce(testing::DoAll(testing::SetArgPointee<2>(response),
- testing::Return(grpc::Status::OK)));
- EXPECT_TRUE(m_sandboxerClient->Prepare(DUMMY_SANDBOX_ID, *params, bundle, err));
- EXPECT_TRUE(err.Empty());
- EXPECT_EQ(bundle, "/tmp/bundle");
-}
-
-TEST_F(ControllerSandboxerClientTest, PrepareTestNullSpec)
-{
- Errors err;
- std::string bundle;
- std::unique_ptr<sandbox::ControllerPrepareParams> params = CreateTestPrepareParams();
- params->spec = nullptr;
- // Stub should not be called
- EXPECT_CALL(*m_stub, Prepare).Times(0);
- EXPECT_FALSE(m_sandboxerClient->Prepare(DUMMY_SANDBOX_ID, *params, bundle, err));
- EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("Failed to init prepare request for sandboxer prepare request"));
}
-TEST_F(ControllerSandboxerClientTest, PrepareTestNullMount)
+/************* Unit tests for Update *************/
+TEST_F(ControllerSandboxerClientTest, UpdateTestSucceed)
{
Errors err;
- std::string bundle;
- std::unique_ptr<sandbox::ControllerPrepareParams> params = CreateTestPrepareParams();
- params->rootfs.push_back(nullptr);
- containerd::services::sandbox::v1::PrepareRequest request;
- // Save request to check mount size.
- EXPECT_CALL(*m_stub, Prepare).Times(1).WillOnce(testing::DoAll(testing::SaveArg<1>(&request),
- testing::Return(grpc::Status::OK)));
- EXPECT_TRUE(m_sandboxerClient->Prepare(DUMMY_SANDBOX_ID, *params, bundle, err));
- // The nullptr pushed in params should not be counted.
- EXPECT_EQ(request.rootfs_size(), 2);
+ auto apiSandbox = CreateTestUpdateApiSandbox();
+ auto fields = CreateTestFields();
+ // Set response to return bundle, and return OK for sandbox_api_update().
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_update).Times(1).WillOnce(testing::DoAll(testing::Return(0)));
+ EXPECT_TRUE(m_sandboxerClient->Update(apiSandbox->get(), fields->get(), err));
EXPECT_TRUE(err.Empty());
}
-TEST_F(ControllerSandboxerClientTest, PrepareTestStatusNotOK)
+TEST_F(ControllerSandboxerClientTest, UpdateTestStatusNotOK)
{
Errors err;
- std::string bundle;
- std::unique_ptr<sandbox::ControllerPrepareParams> params = CreateTestPrepareParams();
- EXPECT_CALL(*m_stub, Prepare).Times(1).WillOnce(testing::Return(grpc::Status(grpc::StatusCode::ABORTED, "gRPC Abort")));
- EXPECT_FALSE(m_sandboxerClient->Prepare(DUMMY_SANDBOX_ID, *params, bundle, err));
- EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("gRPC Abort"));
+ auto apiSandbox = CreateTestUpdateApiSandbox();
+ auto fields = CreateTestFields();
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_update).Times(1).WillOnce(testing::Return(-1));
+ EXPECT_FALSE(m_sandboxerClient->Update(apiSandbox->get(), fields->get(), err));
}
-/************* Unit tests for Purge *************/
-TEST_F(ControllerSandboxerClientTest, PurgeTestSucceed)
-{
- Errors err;
- // Set response to return OK for stub_->Purge().
- EXPECT_CALL(*m_stub, Purge).Times(1).WillOnce(testing::Return(grpc::Status::OK));
- EXPECT_TRUE(m_sandboxerClient->Purge(DUMMY_SANDBOX_ID, DUMMY_CONTAINER_ID, DUMMY_EXEC_ID, err));
- EXPECT_TRUE(err.Empty());
-}
-
-TEST_F(ControllerSandboxerClientTest, PurgeTestStatusNotOK)
+/************* Unit tests for Platform *************/
+static std::unique_ptr<CStructWrapper<sandbox_platform_response>> GetMockSandboxPlatformResponse()
{
- Errors err;
- EXPECT_CALL(*m_stub, Purge).Times(1).WillOnce(testing::Return(grpc::Status(grpc::StatusCode::ABORTED, "gRPC Abort")));
- EXPECT_FALSE(m_sandboxerClient->Purge(DUMMY_SANDBOX_ID, DUMMY_CONTAINER_ID, DUMMY_EXEC_ID, err));
- EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("gRPC Abort"));
-}
+ sandbox_platform_response *reponse = nullptr;
-/************* Unit tests for UpdateResources *************/
-TEST_F(ControllerSandboxerClientTest, UpdateResourcesTestSucceed)
-{
- Errors err;
- google::protobuf::Map<std::string, std::string> annotations;
- std::unique_ptr<sandbox::ControllerUpdateResourcesParams> params = CreateTestUpdateResourcesParams(annotations);
- // Set response to return OK for stub_->UpdateResources().
- EXPECT_CALL(*m_stub, UpdateResources).Times(1).WillOnce(testing::Return(grpc::Status::OK));
- EXPECT_TRUE(m_sandboxerClient->UpdateResources(DUMMY_SANDBOX_ID, *params, err));
- EXPECT_TRUE(err.Empty());
-}
+ auto reponse_wrapper = makeUniquePtrCStructWrapper<sandbox_platform_response>(free_sandbox_platform_response);
+ if (reponse_wrapper == nullptr) {
+ return nullptr;
+ }
+ reponse = reponse_wrapper->get();
-TEST_F(ControllerSandboxerClientTest, UpdateResourcesTestNullResources)
-{
- Errors err;
- google::protobuf::Map<std::string, std::string> annotations;
- std::unique_ptr<sandbox::ControllerUpdateResourcesParams> params = CreateTestUpdateResourcesParams(annotations);
- params->resources = nullptr;
- // Stub should not be called
- EXPECT_CALL(*m_stub, UpdateResources).Times(0);
- EXPECT_FALSE(m_sandboxerClient->UpdateResources(DUMMY_SANDBOX_ID, *params, err));
- EXPECT_THAT(err.GetCMessage(),
- testing::HasSubstr("Failed to init update-resources request for sandboxer update-resources request"));
-}
+ reponse->os = util_strdup_s("linux");
+ reponse->architecture = util_strdup_s("amd64");
+ reponse->variant = util_strdup_s("ubuntu");
-TEST_F(ControllerSandboxerClientTest, UpdateResourcesTestStatusNotOK)
-{
- Errors err;
- google::protobuf::Map<std::string, std::string> annotations;
- std::unique_ptr<sandbox::ControllerUpdateResourcesParams> params = CreateTestUpdateResourcesParams(annotations);
- EXPECT_CALL(*m_stub, UpdateResources).Times(1).WillOnce(testing::Return(grpc::Status(grpc::StatusCode::ABORTED,
- "gRPC Abort")));
- EXPECT_FALSE(m_sandboxerClient->UpdateResources(DUMMY_SANDBOX_ID, *params, err));
- EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("gRPC Abort"));
+ return reponse_wrapper;
}
-/************* Unit tests for Platform *************/
TEST_F(ControllerSandboxerClientTest, PlatformTestSucceed)
{
Errors err;
sandbox::ControllerPlatformInfo platformInfo;
- std::unique_ptr<containerd::services::sandbox::v1::ControllerPlatformResponse> response = CreateTestPlatformResponse();
- EXPECT_CALL(*m_stub, Platform).Times(1).WillOnce(testing::DoAll(testing::SetArgPointee<2>(*response),
- testing::Return(grpc::Status::OK)));
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_platform).Times(1).WillOnce(testing::DoAll(testing::SetArgPointee<2>(*(GetMockSandboxPlatformResponse()->move())),
+ testing::Return(0)));
EXPECT_TRUE(m_sandboxerClient->Platform(DUMMY_SANDBOX_ID, platformInfo, err));
EXPECT_TRUE(err.Empty());
EXPECT_EQ(platformInfo.os, "linux");
@@ -304,18 +225,16 @@ TEST_F(ControllerSandboxerClientTest, PlatformTestStatusNotOK)
{
Errors err;
sandbox::ControllerPlatformInfo platformInfo;
- EXPECT_CALL(*m_stub, Platform).Times(1).WillOnce(testing::Return(grpc::Status(grpc::StatusCode::ABORTED,
- "gRPC Abort")));
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_platform).Times(1).WillOnce(testing::Return(-1));
EXPECT_FALSE(m_sandboxerClient->Platform(DUMMY_SANDBOX_ID, platformInfo, err));
- EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("gRPC Abort"));
}
/************* Unit tests for Stop *************/
TEST_F(ControllerSandboxerClientTest, StopTestSucceed)
{
Errors err;
- // Set response to return OK for stub_->Stop().
- EXPECT_CALL(*m_stub, Stop).Times(1).WillOnce(testing::Return(grpc::Status::OK));
+ // Set response to return OK for sandbox_api_stop().
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_stop).Times(1).WillOnce(testing::Return(0));
EXPECT_TRUE(m_sandboxerClient->Stop(DUMMY_SANDBOX_ID, 0, err));
EXPECT_TRUE(err.Empty());
}
@@ -323,19 +242,49 @@ TEST_F(ControllerSandboxerClientTest, StopTestSucceed)
TEST_F(ControllerSandboxerClientTest, StopTestStatusNotOK)
{
Errors err;
- EXPECT_CALL(*m_stub, Stop).Times(1).WillOnce(testing::Return(grpc::Status(grpc::StatusCode::ABORTED, "gRPC Abort")));
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_stop).Times(1).WillOnce(testing::Return(-1));
EXPECT_FALSE(m_sandboxerClient->Stop(DUMMY_SANDBOX_ID, 0, err));
- EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("gRPC Abort"));
}
/************* Unit tests for Status *************/
+static std::unique_ptr<CStructWrapper<sandbox_status_response>> GetMockSandboxStatusResponse()
+{
+ sandbox_status_response *reponse = nullptr;
+
+ auto reponse_wrapper = makeUniquePtrCStructWrapper<sandbox_status_response>(free_sandbox_status_response);
+ if (reponse_wrapper == nullptr) {
+ return nullptr;
+ }
+ reponse = reponse_wrapper->get();
+
+ reponse->sandbox_id = util_strdup_s(DUMMY_SANDBOX_ID.c_str());
+ reponse->pid = 1;
+ reponse->state = util_strdup_s("running");
+ reponse->info = GetMockLabels()->move();
+ if (reponse->info == nullptr) {
+ return nullptr;
+ }
+ reponse->created_at = DUMMY_CREATE_AT;
+ reponse->exited_at = DUMMY_CREATE_AT;
+ reponse->extra = (defs_any *)util_common_calloc_s(sizeof(defs_any));
+ if (reponse->extra == nullptr) {
+ return nullptr;
+ }
+ reponse->extra->value = (uint8_t*)util_strdup_s("{extra: test}");
+ reponse->extra->value_len = 13;
+ reponse->address = util_strdup_s(DUMMY_TASK_ADDRESS.c_str());
+ reponse->version = 0;
+
+ return reponse_wrapper;
+}
+
TEST_F(ControllerSandboxerClientTest, StatusTestSucceed)
{
Errors err;
sandbox::ControllerSandboxStatus sandboxStatus;
- std::unique_ptr<containerd::services::sandbox::v1::ControllerStatusResponse> response = CreateTestStatusResponse();
- EXPECT_CALL(*m_stub, Status).Times(1).WillOnce(testing::DoAll(testing::SetArgPointee<2>(*response),
- testing::Return(grpc::Status::OK)));
+
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_status).Times(1).WillOnce(testing::DoAll(testing::SetArgPointee<2>(*(GetMockSandboxStatusResponse()->move())),
+ testing::Return(0)));
EXPECT_TRUE(m_sandboxerClient->Status(DUMMY_SANDBOX_ID, false, sandboxStatus, err));
EXPECT_TRUE(err.Empty());
EXPECT_EQ(sandboxStatus.id, DUMMY_SANDBOX_ID);
@@ -345,7 +294,7 @@ TEST_F(ControllerSandboxerClientTest, StatusTestSucceed)
EXPECT_EQ(sandboxStatus.createdAt, DUMMY_CREATE_AT);
EXPECT_EQ(sandboxStatus.exitedAt, DUMMY_CREATE_AT);
EXPECT_EQ(sandboxStatus.info.size(), 1);
- EXPECT_EQ(sandboxStatus.info["info1"], "value1");
+ EXPECT_EQ(sandboxStatus.info["label1"], "value1");
EXPECT_EQ(sandboxStatus.extra, "{extra: test}");
}
@@ -353,17 +302,16 @@ TEST_F(ControllerSandboxerClientTest, StatusTestStatusNotOK)
{
Errors err;
sandbox::ControllerSandboxStatus sandboxStatus;
- EXPECT_CALL(*m_stub, Status).Times(1).WillOnce(testing::Return(grpc::Status(grpc::StatusCode::ABORTED, "gRPC Abort")));
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_status).Times(1).WillOnce(testing::Return(-1));
EXPECT_FALSE(m_sandboxerClient->Status(DUMMY_SANDBOX_ID, false, sandboxStatus, err));
- EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("gRPC Abort"));
}
/************* Unit tests for Shutdown *************/
TEST_F(ControllerSandboxerClientTest, ShutdownTestSucceed)
{
Errors err;
- // Set response to return OK for stub_->Shutdown().
- EXPECT_CALL(*m_stub, Shutdown).Times(1).WillOnce(testing::Return(grpc::Status::OK));
+ // Set response to return OK for sandbox_api_shutdown().
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_shutdown).Times(1).WillOnce(testing::Return(0));
EXPECT_TRUE(m_sandboxerClient->Shutdown(DUMMY_SANDBOX_ID, err));
EXPECT_TRUE(err.Empty());
}
@@ -371,8 +319,6 @@ TEST_F(ControllerSandboxerClientTest, ShutdownTestSucceed)
TEST_F(ControllerSandboxerClientTest, ShutdownTestStatusNotOK)
{
Errors err;
- EXPECT_CALL(*m_stub, Shutdown).Times(1).WillOnce(testing::Return(grpc::Status(grpc::StatusCode::ABORTED,
- "gRPC Abort")));
+ EXPECT_CALL(*m_rustSandboxApiMock, sandbox_api_shutdown).Times(1).WillOnce(testing::Return(-1));
EXPECT_FALSE(m_sandboxerClient->Shutdown(DUMMY_SANDBOX_ID, err));
- EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("gRPC Abort"));
}
diff --git a/test/sandbox/controller/sandboxer/sandboxer_controller/CMakeLists.txt b/test/sandbox/controller/sandboxer/sandboxer_controller/CMakeLists.txt
index 963ce9a5..e03cc58e 100644
--- a/test/sandbox/controller/sandboxer/sandboxer_controller/CMakeLists.txt
+++ b/test/sandbox/controller/sandboxer/sandboxer_controller/CMakeLists.txt
@@ -4,13 +4,11 @@ SET(EXE sandbox_controller_ut)
add_executable(${EXE}
${grpc_sandbox_type_srcs}
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox.pb.cc
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/v1/api_v1.pb.cc
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/gogo.pb.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cpputils/errors.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller/sandboxer/sandboxer_controller.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/sandboxer/controller/sandboxer_controller.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/mocks/grpc_sandboxer_client_mock.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/mocks/controller_stub_mock.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/sandbox/controller/controller_common.cc
${CMAKE_CURRENT_SOURCE_DIR}/sandboxer_controller_ut.cc)
@@ -19,9 +17,10 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/sandbox/controller
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../test/mocks
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/entry/cri
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller/sandboxer
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/controller/sandboxer/client
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/sandboxer
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/sandboxer/controller
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/daemon/sandbox/sandboxer/controller/client
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/common
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cutils
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cutils/map
diff --git a/test/sandbox/controller/sandboxer/sandboxer_controller/sandboxer_controller_ut.cc b/test/sandbox/controller/sandboxer/sandboxer_controller/sandboxer_controller_ut.cc
index f49d7cc5..726464e8 100644
--- a/test/sandbox/controller/sandboxer/sandboxer_controller/sandboxer_controller_ut.cc
+++ b/test/sandbox/controller/sandboxer/sandboxer_controller/sandboxer_controller_ut.cc
@@ -27,8 +27,6 @@ protected:
m_contoller = std::move(std::unique_ptr<SandboxerController>(new SandboxerController(m_sandboxer, m_address)));
m_sandboxerClientMock = std::make_shared<SandboxerClientMock>();
MockSandboxerClient_SetMock(m_sandboxerClientMock);
- EXPECT_CALL(*m_sandboxerClientMock, Init).Times(1);
- m_contoller->Init(err);
}
void TearDown() override
@@ -119,61 +117,27 @@ TEST_F(SandboxerControllerTest, PlatformTestFailed)
EXPECT_EQ(ret, nullptr);
}
-/************* Unit tests for Prepare *************/
-TEST_F(SandboxerControllerTest, PrepareTestSucceed)
+/************* Unit tests for Update *************/
+TEST_F(SandboxerControllerTest, UpdateTestSucceed)
{
Errors err;
- std::string bundle = "/tmp/bundle";
- // Set response to return sandbox_id, and return OK for stub_->Prepare().
- EXPECT_CALL(*m_sandboxerClientMock, Prepare).Times(1).WillOnce(testing::DoAll(testing::SetArgReferee<2>(bundle),
- testing::Return(true)));
- std::string ret = m_contoller->Prepare(DUMMY_SANDBOX_ID, *CreateTestPrepareParams(), err);
- EXPECT_EQ(ret, bundle);
-}
-
-TEST_F(SandboxerControllerTest, PrepareTestFailed)
-{
- Errors err;
- // Set response to return sandbox_id, and return OK for stub_->Prepare().
- EXPECT_CALL(*m_sandboxerClientMock, Prepare).Times(1).WillOnce(testing::Return(false));
- std::string ret = m_contoller->Prepare(DUMMY_SANDBOX_ID, *CreateTestPrepareParams(), err);
- EXPECT_EQ(ret, "");
-}
-
-/************* Unit tests for Purge *************/
-TEST_F(SandboxerControllerTest, PurgeTestSucceed)
-{
- Errors err;
- // Set response to return sandbox_id, and return OK for stub_->Purge().
- EXPECT_CALL(*m_sandboxerClientMock, Purge).Times(1).WillOnce(testing::Return(true));
- EXPECT_TRUE(m_contoller->Purge(DUMMY_SANDBOX_ID, DUMMY_CONTAINER_ID, DUMMY_EXEC_ID, err));
-}
+ auto apiSandbox = CreateTestUpdateApiSandbox();
+ auto fields = CreateTestFields();
-TEST_F(SandboxerControllerTest, PurgeTestFailed)
-{
- Errors err;
- // Set response to return sandbox_id, and return OK for stub_->Purge().
- EXPECT_CALL(*m_sandboxerClientMock, Purge).Times(1).WillOnce(testing::Return(false));
- EXPECT_FALSE(m_contoller->Purge(DUMMY_SANDBOX_ID, DUMMY_CONTAINER_ID, DUMMY_EXEC_ID, err));
+ // return OK for stub_->Update().
+ EXPECT_CALL(*m_sandboxerClientMock, Update).Times(1).WillOnce(testing::DoAll(testing::Return(true)));
+ EXPECT_TRUE(m_contoller->Update(apiSandbox->get(), fields->get(), err));
}
-/************* Unit tests for UpdateResources *************/
-TEST_F(SandboxerControllerTest, UpdateResourcesTestSucceed)
+TEST_F(SandboxerControllerTest, UpdateTestFailed)
{
Errors err;
- google::protobuf::Map<std::string, std::string> annotations;
- // Set response to return sandbox_id, and return OK for stub_->UpdateResources().
- EXPECT_CALL(*m_sandboxerClientMock, UpdateResources).Times(1).WillOnce(testing::Return(true));
- EXPECT_TRUE(m_contoller->UpdateResources(DUMMY_SANDBOX_ID, *CreateTestUpdateResourcesParams(annotations), err));
-}
+ auto apiSandbox = CreateTestUpdateApiSandbox();
+ auto fields = CreateTestFields();
-TEST_F(SandboxerControllerTest, UpdateResourcesTestFailed)
-{
- Errors err;
- google::protobuf::Map<std::string, std::string> annotations;
- // Set response to return sandbox_id, and return OK for stub_->UpdateResources().
- EXPECT_CALL(*m_sandboxerClientMock, UpdateResources).Times(1).WillOnce(testing::Return(false));
- EXPECT_FALSE(m_contoller->UpdateResources(DUMMY_SANDBOX_ID, *CreateTestUpdateResourcesParams(annotations), err));
+ // return OK for stub_->Update().
+ EXPECT_CALL(*m_sandboxerClientMock, Update).Times(1).WillOnce(testing::Return(false));
+ EXPECT_FALSE(m_contoller->Update(apiSandbox->get(), fields->get(), err));
}
/************* Unit tests for Stop *************/
diff --git a/test/sandbox/controller/shim/CMakeLists.txt b/test/sandbox/controller/shim/CMakeLists.txt
index d18d1861..069312c9 100644
--- a/test/sandbox/controller/shim/CMakeLists.txt
+++ b/test/sandbox/controller/shim/CMakeLists.txt
@@ -14,7 +14,7 @@ add_executable(${EXE}
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/common/err_msg.c
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/config/daemon_arguments.c
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/config/isulad_config.c
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/controller/shim/shim_controller.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/shim/controller/shim_controller.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/utils/cpputils/errors.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/utils/cpputils/cxxutils.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/utils/sha256/sha256.c
@@ -41,8 +41,9 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/modules/image/oci/storage/layer_store/graphdriver
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/modules/image/oci/storage/layer_store/graphdriver/overlay2
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/modules/image/oci/storage/layer_store/graphdriver/devmapper
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/controller
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/controller/shim
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/shim
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/sandbox/shim/controller
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/utils/cpputils
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/utils/sha256
${CMAKE_CURRENT_SOURCE_DIR}/../../../../test/sandbox/controller
diff --git a/test/sandbox/sandbox/CMakeLists.txt b/test/sandbox/sandbox/CMakeLists.txt
index 2a35388f..9ee67033 100644
--- a/test/sandbox/sandbox/CMakeLists.txt
+++ b/test/sandbox/sandbox/CMakeLists.txt
@@ -6,7 +6,6 @@ aux_source_directory(${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox/t
add_executable(${EXE}
${sandbox_type_srcs}
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox.pb.cc
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/v1/api_v1.pb.cc
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/gogo.pb.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils/errors.cc
@@ -14,14 +13,15 @@ add_executable(${EXE}
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils/transform.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils/cxxutils.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandbox.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller/controller_manager.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller/sandboxer/sandboxer_controller.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandbox_task.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller_manager.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer/controller/sandboxer_controller.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/shim/shim_sandbox.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/common/id_name_manager.c
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/config/isulad_config.c
${CMAKE_CURRENT_SOURCE_DIR}/../../../test/sandbox/controller/controller_common.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/config/daemon_arguments.c
${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/grpc_sandboxer_client_mock.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/controller_stub_mock.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/shim_controller_mock.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/mailbox_mock.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/common/err_msg.c
@@ -35,18 +35,17 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/entry/cri
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/executor
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/mailbox
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller/shim
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller/sandboxer
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller/sandboxer/client
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/shim
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/shim/controller
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer/controller
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer/controller/client
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/common
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/v1
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/google/protobuf
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox/types
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} libutils_ut -lgrpc -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
diff --git a/test/sandbox/sandbox/sandbox_ut.cc b/test/sandbox/sandbox/sandbox_ut.cc
index dd84d8fb..192d46ef 100644
--- a/test/sandbox/sandbox/sandbox_ut.cc
+++ b/test/sandbox/sandbox/sandbox_ut.cc
@@ -16,6 +16,7 @@
#include <gtest/gtest.h>
#include "sandbox.h"
+#include "shim_sandbox.h"
namespace sandbox {
@@ -40,7 +41,7 @@ TEST_F(SandboxTest, TestDefaultGetters)
std::string name = "test";
RuntimeInfo info = {"runc", "shim", "kuasar"};
- auto sandbox = new Sandbox(id, rootdir, statedir, name, info);
+ auto sandbox = new ShimSandbox(id, rootdir, statedir, name, info);
ASSERT_NE(sandbox, nullptr);
ASSERT_EQ(sandbox->IsReady(), false);
@@ -66,7 +67,7 @@ TEST_F(SandboxTest, TestGettersAndSetters)
std::string statedir = "/test2/statedir";
std::string mode = "host";
- auto sandbox = new Sandbox(id, rootdir, statedir);
+ auto sandbox = new ShimSandbox(id, rootdir, statedir);
ASSERT_NE(sandbox, nullptr);
sandbox->SetNetMode(mode);
diff --git a/test/sandbox/sandbox_manager/CMakeLists.txt b/test/sandbox/sandbox_manager/CMakeLists.txt
index 5a7cb2ea..9254263c 100644
--- a/test/sandbox/sandbox_manager/CMakeLists.txt
+++ b/test/sandbox/sandbox_manager/CMakeLists.txt
@@ -6,22 +6,22 @@ aux_source_directory(${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox/t
add_executable(${EXE}
${sandbox_type_srcs}
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox.pb.cc
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/v1/api_v1.pb.cc
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/gogo.pb.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils/errors.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils/read_write_lock.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils/transform.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/sandbox_mock.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/shim_sandbox_mock.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/sandboxer_sandbox_mock.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandbox_manager.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/common/id_name_manager.c
${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/isulad_config_mock.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/common/err_msg.c
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/config/daemon_arguments.c
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller/controller_manager.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller/sandboxer/sandboxer_controller.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller_manager.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/grpc_sandboxer_client_mock.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/controller_stub_mock.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/sandboxer_controller_mock.cc
${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/shim_controller_mock.cc
${CMAKE_CURRENT_SOURCE_DIR}/sandbox_manager_ut.cc)
@@ -33,18 +33,17 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/config
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/entry/cri
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/executor
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller/shim
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller/sandboxer
- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller/sandboxer/client
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/shim
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/shim/controller
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer/controller
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer/controller/client
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/common
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri
${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/v1
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/google/protobuf
- ${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox/types
)
set_target_properties(${EXE} PROPERTIES LINK_FLAGS "-Wl,--wrap,util_list_all_subdir")
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} libutils_ut -lgrpc -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
--
2.34.1
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/src-openeuler/iSulad.git
git@gitee.com:src-openeuler/iSulad.git
src-openeuler
iSulad
iSulad
master

搜索帮助