@@ -339,22 +339,64 @@ TEST_F(ZeroArguments, ECLValidCommandStatusSetSync) {
339
339
CheckDescriptorEqStr (cmdMsg.get (), " No change" );
340
340
}
341
341
342
- TEST_F (ZeroArguments, ECLInvalidCommandErrorSync) {
343
- OwningPtr<Descriptor> command{CharDescriptor (" InvalidCommand" )};
342
+ TEST_F (ZeroArguments, ECLGeneralErrorCommandErrorSync) {
343
+ OwningPtr<Descriptor> command{CharDescriptor (" cat general-error" )};
344
+ bool wait{true };
345
+ OwningPtr<Descriptor> exitStat{IntDescriptor (404 )};
346
+ OwningPtr<Descriptor> cmdStat{IntDescriptor (202 )};
347
+ OwningPtr<Descriptor> cmdMsg{CharDescriptor (" cmd msg buffer XXXXXXXX" )};
348
+
349
+ RTNAME (ExecuteCommandLine)
350
+ (*command.get (), wait, exitStat.get (), cmdStat.get (), cmdMsg.get ());
351
+ #ifdef _WIN32
352
+ CheckDescriptorEqInt (exitStat.get (), 1 );
353
+ CheckDescriptorEqStr (cmdMsg.get (), " Invalid command lineXXX" );
354
+ #else
355
+ CheckDescriptorEqInt<std::int64_t >(exitStat.get (), 1 );
356
+ CheckDescriptorEqStr (cmdMsg.get (), " General Error: a catch-" );
357
+ #endif
358
+ CheckDescriptorEqInt<std::int64_t >(cmdStat.get (), 3 );
359
+ }
360
+
361
+ TEST_F (ZeroArguments, ECLNotExecutedCommandErrorSync) {
362
+ OwningPtr<Descriptor> command{CharDescriptor (" cd NotExecutedCommand" )};
363
+ bool wait{true };
364
+ OwningPtr<Descriptor> exitStat{IntDescriptor (404 )};
365
+ OwningPtr<Descriptor> cmdStat{IntDescriptor (202 )};
366
+ OwningPtr<Descriptor> cmdMsg{CharDescriptor (" cmd msg buffer XXXXXXXX" )};
367
+
368
+ RTNAME (ExecuteCommandLine)
369
+ (*command.get (), wait, exitStat.get (), cmdStat.get (), cmdMsg.get ());
370
+ #ifdef _WIN32
371
+ CheckDescriptorEqInt (exitStat.get (), 1 );
372
+ CheckDescriptorEqStr (cmdMsg.get (), " Invalid command lineXXX" );
373
+ #else
374
+ CheckDescriptorEqInt<std::int64_t >(exitStat.get (), 126 );
375
+ CheckDescriptorEqStr (cmdMsg.get (), " Command cannot execute:" );
376
+ #endif
377
+ CheckDescriptorEqInt<std::int64_t >(cmdStat.get (), 3 );
378
+ }
379
+
380
+ TEST_F (ZeroArguments, ECLNotFoundCommandErrorSync) {
381
+ OwningPtr<Descriptor> command{CharDescriptor (" NotFoundCommand" )};
344
382
bool wait{true };
345
383
OwningPtr<Descriptor> exitStat{IntDescriptor (404 )};
346
384
OwningPtr<Descriptor> cmdStat{IntDescriptor (202 )};
347
- OwningPtr<Descriptor> cmdMsg{CharDescriptor (" Message ChangedXXXXXXXXX" )};
385
+ OwningPtr<Descriptor> cmdMsg{CharDescriptor (
386
+ " cmdmsg will not modify the remaining buffer XXXXXXXXXXXXXXXXXXXX" )};
348
387
349
388
RTNAME (ExecuteCommandLine)
350
389
(*command.get (), wait, exitStat.get (), cmdStat.get (), cmdMsg.get ());
351
390
#ifdef _WIN32
352
391
CheckDescriptorEqInt (exitStat.get (), 1 );
392
+ CheckDescriptorEqStr (cmdMsg.get (),
393
+ " Invalid command lineXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" );
353
394
#else
354
395
CheckDescriptorEqInt<std::int64_t >(exitStat.get (), 127 );
396
+ CheckDescriptorEqStr (cmdMsg.get (),
397
+ " Command not found: command was not found in the system's PATHXXX" );
355
398
#endif
356
399
CheckDescriptorEqInt<std::int64_t >(cmdStat.get (), 3 );
357
- CheckDescriptorEqStr (cmdMsg.get (), " Invalid command lineXXXX" );
358
400
}
359
401
360
402
TEST_F (ZeroArguments, ECLInvalidCommandTerminatedSync) {
0 commit comments