@@ -349,7 +349,7 @@ TEST_F(ZeroArguments, ECLGeneralErrorCommandErrorSync) {
349
349
RTNAME (ExecuteCommandLine)
350
350
(*command.get (), wait, exitStat.get (), cmdStat.get (), cmdMsg.get ());
351
351
#ifdef _WIN32
352
- CheckDescriptorEqInt (exitStat.get (), 1 );
352
+ CheckDescriptorEqInt<std:: int64_t > (exitStat.get (), 1 );
353
353
CheckDescriptorEqStr (cmdMsg.get (), " Invalid command lineXXX" );
354
354
#else
355
355
CheckDescriptorEqInt<std::int64_t >(exitStat.get (), 1 );
@@ -359,7 +359,9 @@ TEST_F(ZeroArguments, ECLGeneralErrorCommandErrorSync) {
359
359
}
360
360
361
361
TEST_F (ZeroArguments, ECLNotExecutedCommandErrorSync) {
362
- OwningPtr<Descriptor> command{CharDescriptor (" cd NotExecutedCommand" )};
362
+ OwningPtr<Descriptor> command{CharDescriptor (
363
+ " touch NotExecutedCommandFile && chmod -x NotExecutedCommandFile && "
364
+ " ./NotExecutedCommandFile" )};
363
365
bool wait{true };
364
366
OwningPtr<Descriptor> exitStat{IntDescriptor (404 )};
365
367
OwningPtr<Descriptor> cmdStat{IntDescriptor (202 )};
@@ -368,13 +370,28 @@ TEST_F(ZeroArguments, ECLNotExecutedCommandErrorSync) {
368
370
RTNAME (ExecuteCommandLine)
369
371
(*command.get (), wait, exitStat.get (), cmdStat.get (), cmdMsg.get ());
370
372
#ifdef _WIN32
371
- CheckDescriptorEqInt (exitStat.get (), 1 );
373
+ CheckDescriptorEqInt<std:: int64_t > (exitStat.get (), 1 );
372
374
CheckDescriptorEqStr (cmdMsg.get (), " Invalid command lineXXX" );
373
375
#else
374
376
CheckDescriptorEqInt<std::int64_t >(exitStat.get (), 126 );
375
377
CheckDescriptorEqStr (cmdMsg.get (), " Command cannot execute:" );
376
378
#endif
377
379
CheckDescriptorEqInt<std::int64_t >(cmdStat.get (), 3 );
380
+
381
+ // removing the file should have no error on Linux, have error on Windows
382
+ OwningPtr<Descriptor> commandClean{CharDescriptor (" rm -f NotExecutedCommandFile" )};
383
+ OwningPtr<Descriptor> cmdMsgNoErr{CharDescriptor (" No Error" )};
384
+ RTNAME (ExecuteCommandLine)
385
+ (*commandClean.get (), wait, exitStat.get (), cmdStat.get (), cmdMsgNoErr.get ());
386
+ #ifdef _WIN32
387
+ CheckDescriptorEqInt<std::int64_t >(exitStat.get (), 1 );
388
+ CheckDescriptorEqStr (cmdMsgNoErr.get (), " Invalid " );
389
+ CheckDescriptorEqInt<std::int64_t >(cmdStat.get (), 3 );
390
+ #else
391
+ CheckDescriptorEqInt<std::int64_t >(exitStat.get (), 0 );
392
+ CheckDescriptorEqStr (cmdMsgNoErr.get (), " No Error" );
393
+ CheckDescriptorEqInt<std::int64_t >(cmdStat.get (), 0 );
394
+ #endif
378
395
}
379
396
380
397
TEST_F (ZeroArguments, ECLNotFoundCommandErrorSync) {
@@ -388,9 +405,9 @@ TEST_F(ZeroArguments, ECLNotFoundCommandErrorSync) {
388
405
RTNAME (ExecuteCommandLine)
389
406
(*command.get (), wait, exitStat.get (), cmdStat.get (), cmdMsg.get ());
390
407
#ifdef _WIN32
391
- CheckDescriptorEqInt (exitStat.get (), 1 );
408
+ CheckDescriptorEqInt<std:: int64_t > (exitStat.get (), 1 );
392
409
CheckDescriptorEqStr (cmdMsg.get (),
393
- " Invalid command lineXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX " );
410
+ " Invalid command linefy the remaining buffer XXXXXXXXXXXXXXXXXXXX " );
394
411
#else
395
412
CheckDescriptorEqInt<std::int64_t >(exitStat.get (), 127 );
396
413
CheckDescriptorEqStr (cmdMsg.get (),
@@ -402,19 +419,17 @@ TEST_F(ZeroArguments, ECLNotFoundCommandErrorSync) {
402
419
TEST_F (ZeroArguments, ECLInvalidCommandTerminatedSync) {
403
420
OwningPtr<Descriptor> command{CharDescriptor (" InvalidCommand" )};
404
421
bool wait{true };
405
- OwningPtr<Descriptor> exitStat{IntDescriptor (404 )};
406
422
OwningPtr<Descriptor> cmdMsg{CharDescriptor (" No Change" )};
407
423
408
424
#ifdef _WIN32
409
425
EXPECT_DEATH (RTNAME (ExecuteCommandLine)(
410
- *command.get (), wait, exitStat. get () , nullptr , cmdMsg.get ()),
426
+ *command.get (), wait, nullptr , nullptr , cmdMsg.get ()),
411
427
" Invalid command quit with exit status code: 1" );
412
428
#else
413
429
EXPECT_DEATH (RTNAME (ExecuteCommandLine)(
414
- *command.get (), wait, exitStat. get () , nullptr , cmdMsg.get ()),
415
- " Invalid command quit with exit status code: 127" );
430
+ *command.get (), wait, nullptr , nullptr , cmdMsg.get ()),
431
+ " Command not found with exit status code: 127" );
416
432
#endif
417
- CheckDescriptorEqInt (exitStat.get (), 404 );
418
433
CheckDescriptorEqStr (cmdMsg.get (), " No Change" );
419
434
}
420
435
@@ -428,21 +443,18 @@ TEST_F(ZeroArguments, ECLValidCommandAndExitStatNoChangeAndCMDStatusSetAsync) {
428
443
RTNAME (ExecuteCommandLine)
429
444
(*command.get (), wait, exitStat.get (), cmdStat.get (), cmdMsg.get ());
430
445
431
- CheckDescriptorEqInt (exitStat.get (), 404 );
446
+ CheckDescriptorEqInt<std:: int64_t > (exitStat.get (), 404 );
432
447
CheckDescriptorEqInt<std::int64_t >(cmdStat.get (), 0 );
433
448
CheckDescriptorEqStr (cmdMsg.get (), " No change" );
434
449
}
435
450
436
451
TEST_F (ZeroArguments, ECLInvalidCommandParentNotTerminatedAsync) {
437
452
OwningPtr<Descriptor> command{CharDescriptor (" InvalidCommand" )};
438
453
bool wait{false };
439
- OwningPtr<Descriptor> exitStat{IntDescriptor (404 )};
440
454
OwningPtr<Descriptor> cmdMsg{CharDescriptor (" No change" )};
441
455
442
456
EXPECT_NO_FATAL_FAILURE (RTNAME (ExecuteCommandLine)(
443
- *command.get (), wait, exitStat.get (), nullptr , cmdMsg.get ()));
444
-
445
- CheckDescriptorEqInt (exitStat.get (), 404 );
457
+ *command.get (), wait, nullptr , nullptr , cmdMsg.get ()));
446
458
CheckDescriptorEqStr (cmdMsg.get (), " No change" );
447
459
}
448
460
0 commit comments