@@ -20,7 +20,8 @@ gascheduler_test_() ->
2020 {spawn , {timeout , 60 , ? _test (node_down ())}},
2121 {spawn , {timeout , 60 , ? _test (unfinished ())}},
2222 {spawn , {timeout , 60 , ? _test (permanent_failure ())}},
23- {spawn , {timeout , 120 , ? _test (exit_handling ())}}
23+ {spawn , {timeout , 120 , ? _test (exit_handling ())}},
24+ {spawn , ? _test (unnamed_scheduler ())}
2425 ]}.
2526
2627
@@ -381,6 +382,26 @@ exit_handling() ->
381382
382383 ok .
383384
385+ % % Start a scheduler with no name
386+ % % Assert no name is registered for the pid of the scheduler
387+ % % Execute a task through the scheduler
388+ % % assert that work is finished
389+ unnamed_scheduler () ->
390+ Client = self (),
391+ Nodes = [node ()],
392+
393+ {ok , Pid } = gascheduler :start_link (Nodes , Client , 1 , 1 ),
394+
395+ % % See erlang:process_info/2 on why we get a list when there is no name
396+ % % registered.
397+ ? assertEqual ([], process_info (Pid , registered_name )),
398+
399+ ok = test_tasks (Pid , 1 , Nodes ),
400+
401+ ok = gascheduler :stop (Pid ),
402+
403+ ok .
404+
384405
385406% %
386407% % Utilities
@@ -463,15 +484,18 @@ kill_if(Node) ->
463484 end .
464485
465486test_tasks (NumTasks , Nodes ) ->
487+ test_tasks (test , NumTasks , Nodes ).
488+
489+ test_tasks (Scheduler , NumTasks , Nodes ) ->
466490 Tasks = lists :seq (1 , NumTasks ),
467491 ok = lists :foreach (
468492 fun (Id ) ->
469- ok = gascheduler :execute (test , {gascheduler_test , sleep_100 , [Id ]})
493+ ok = gascheduler :execute (Scheduler , {gascheduler_test , sleep_100 , [Id ]})
470494 end , Tasks ),
471495 Received = lists :map (
472496 fun (_ ) ->
473497 receive
474- {test , {ok , Id }, Node , {Mod , Fun , Args }} ->
498+ {Scheduler , {ok , Id }, Node , {Mod , Fun , Args }} ->
475499 ? assertEqual (gascheduler_test , Mod ),
476500 ? assertEqual (sleep_100 , Fun ),
477501 ? assertEqual (length (Args ), 1 ),
0 commit comments