@@ -409,9 +409,14 @@ def test_exec_service_with_config(self):
409
409
410
410
def test_wait_for_session (self ):
411
411
self ._test_wait_for_session ("qubes.Service+arg" )
412
+ @unittest .expectedFailure
413
+ def test_wait_for_session_huge_path (self ):
414
+ l = 255 - len ("qubes.Service+" )
415
+ arg = l * "a"
416
+ self ._test_wait_for_session ("qubes.Service" , argument = arg )
412
417
def test_wait_for_session_config_in_location_sans_argument (self ):
413
418
self ._test_wait_for_session ("qubes.Service" )
414
- def _test_wait_for_session (self , config_name ):
419
+ def _test_wait_for_session (self , config_name , service_name = "qubes.Service" , argument = "arg" ):
415
420
log = os .path .join (self .tempdir , "wait-for-session.log" )
416
421
util .make_executable_service (
417
422
self .tempdir ,
@@ -428,7 +433,7 @@ def _test_wait_for_session(self, config_name):
428
433
util .make_executable_service (
429
434
self .tempdir ,
430
435
"rpc" ,
431
- "qubes.Service" ,
436
+ service_name ,
432
437
"""\
433
438
#!/bin/sh
434
439
cat {}
@@ -451,7 +456,7 @@ def _test_wait_for_session(self, config_name):
451
456
wait-for-session = 1 # line comment
452
457
""" )
453
458
454
- target , dom0 = self .execute_qubesrpc ("qubes.Service+arg" , "domX" )
459
+ target , dom0 = self .execute_qubesrpc (service_name + "+" + argument , "domX" )
455
460
self .assertEqual (target .recv_message (), (
456
461
qrexec .MSG_DATA_STDOUT ,
457
462
(
@@ -470,7 +475,8 @@ def _test_wait_for_session(self, config_name):
470
475
[
471
476
(
472
477
qrexec .MSG_DATA_STDOUT ,
473
- b"arg: arg, remote domain: domX, input: stdin data\n " ,
478
+ b"arg: " + argument .encode ("ascii" , "strict" )
479
+ + b", remote domain: domX, input: stdin data\n " ,
474
480
),
475
481
(qrexec .MSG_DATA_STDOUT , b"" ),
476
482
(qrexec .MSG_DATA_STDERR , b"" ),
0 commit comments