@@ -103,6 +103,50 @@ TEST(CLIArgsParserTest, RejectsMissingSchemaVersionValue) {
103103 "--schema-version requires a value");
104104}
105105
106+ #ifdef CCAP_ENABLE_VIDEO_WRITER
107+ TEST (CLIArgsParserTest, ParsesRecordOutputPath) {
108+ char arg0[] = " ccap" ;
109+ char arg1[] = " --record" ;
110+ char arg2[] = " capture.mp4" ;
111+ char * argv[] = { arg0, arg1, arg2, nullptr };
112+
113+ const ccap_cli::CLIOptions opts = ccap_cli::parseArgs (3 , argv);
114+
115+ EXPECT_EQ (opts.recordVideoPath , " capture.mp4" );
116+ }
117+
118+ TEST (CLIArgsParserTest, RejectsMissingRecordValue) {
119+ char arg0[] = " ccap" ;
120+ char arg1[] = " --record" ;
121+ char arg2[] = " --timeout" ;
122+ char arg3[] = " 5" ;
123+ char * argv[] = { arg0, arg1, arg2, arg3, nullptr };
124+
125+ EXPECT_EXIT (
126+ {
127+ (void )ccap_cli::parseArgs (4 , argv);
128+ std::exit (0 );
129+ },
130+ ::testing::ExitedWithCode (1 ),
131+ "--record requires an output file path");
132+ }
133+ #else
134+ TEST (CLIArgsParserTest, RejectsRecordWhenWriterUnsupported) {
135+ char arg0[] = " ccap" ;
136+ char arg1[] = " --record" ;
137+ char arg2[] = " capture.mp4" ;
138+ char * argv[] = { arg0, arg1, arg2, nullptr };
139+
140+ EXPECT_EXIT (
141+ {
142+ (void )ccap_cli::parseArgs (3 , argv);
143+ std::exit (0 );
144+ },
145+ ::testing::ExitedWithCode (1 ),
146+ "--record is not supported in this build");
147+ }
148+ #endif
149+
106150#if defined(_WIN32) || defined(_WIN64)
107151TEST (CLIArgsParserTest, ParsesWindowsCameraBackendOption) {
108152 char arg0[] = " ccap" ;
0 commit comments