@@ -1440,9 +1440,10 @@ perform(NumTests, Test, Opts) ->
1440
1440
perform (Passed , NumTests , Test , Opts ) ->
1441
1441
Size = size_at_nth_test (Passed , Opts ),
1442
1442
put ('$size' , Size ),
1443
- % % When working on parallelizing PropEr initially we used to hit too easily
1444
- % % the default maximum number of tries that PropEr had, so when running on parallel
1445
- % % it has a higher than usual max number of tries.The number was picked after testing locally
1443
+ % % When working on parallelizing PropEr initially we used to hit
1444
+ % % too easily the default maximum number of tries that PropEr had,
1445
+ % % so when running on parallel it has a higher than usual max
1446
+ % % number of tries. The number was picked after testing locally
1446
1447
% % with different values.
1447
1448
perform (Passed , NumTests , 3 * ? MAX_TRIES_FACTOR * NumTests , Test , none , none , Opts ).
1448
1449
@@ -1597,14 +1598,12 @@ perform_search(Steps, NumSteps, TriesLeft, Target, DTest,
1597
1598
Error
1598
1599
end .
1599
1600
1600
-
1601
1601
-spec add_samples ([sample ()], [sample ()] | 'none' ) -> [sample ()].
1602
1602
add_samples (MoreSamples , none ) ->
1603
1603
MoreSamples ;
1604
1604
add_samples (MoreSamples , Samples ) ->
1605
1605
[M ++ S || {M , S } <- proper_arith :safe_zip (MoreSamples , Samples )].
1606
1606
1607
-
1608
1607
% % Evaluated only for its side-effects.
1609
1608
-spec gen_and_print_samples (proper_types :raw_type (),
1610
1609
proper_gen :size (), proper_gen :size ()) -> 'ok' .
@@ -2190,29 +2189,24 @@ apply_skip(Args, Prop) ->
2190
2189
% % Output functions
2191
2190
% %-----------------------------------------------------------------------------
2192
2191
2193
- -spec aggregate_imm_result (list ( pid ()) , imm_result ()) -> imm_result ().
2192
+ -spec aggregate_imm_result ([ pid ()] , imm_result ()) -> imm_result ().
2194
2193
aggregate_imm_result ([], ImmResult ) ->
2195
2194
ImmResult ;
2196
2195
aggregate_imm_result (WorkerList , # pass {performed = Passed , samples = Samples } = ImmResult ) ->
2197
2196
Id = get ('$property_id' ),
2198
2197
receive
2199
2198
% % if we haven't received anything yet we use the first pass we get
2200
- {worker_msg , # pass {} = Received , From , Id } when Passed == undefined ->
2199
+ {worker_msg , # pass {} = Received , From , Id } when Passed =: = undefined ->
2201
2200
aggregate_imm_result (WorkerList -- [From ], Received );
2202
2201
% % from that moment on, we accumulate the count of passed tests
2203
- {worker_msg , # pass {performed = PassedRcvd , samples = SamplesRcvd }, From , Id }
2204
- when Samples == [none ] ->
2205
- NewImmResult = ImmResult # pass {performed = Passed + PassedRcvd ,
2206
- samples = SamplesRcvd },
2207
- aggregate_imm_result (WorkerList -- [From ], NewImmResult );
2208
2202
{worker_msg , # pass {performed = PassedRcvd , samples = SamplesRcvd }, From , Id } ->
2209
2203
NewImmResult = ImmResult # pass {performed = Passed + PassedRcvd ,
2210
2204
samples = Samples ++ SamplesRcvd },
2211
2205
aggregate_imm_result (WorkerList -- [From ], NewImmResult );
2212
2206
{worker_msg , # fail {performed = FailedOn } = Received , From , Id } ->
2213
2207
lists :foreach (fun (P ) ->
2214
- P ! {worker_msg , {failed_test , self ()}, Id } end ,
2215
- WorkerList -- [From ]),
2208
+ P ! {worker_msg , {failed_test , self ()}, Id }
2209
+ end , WorkerList -- [From ]),
2216
2210
Performed = lists :foldl (fun (Worker , Acc ) ->
2217
2211
receive
2218
2212
{worker_msg , {performed , undefined , Id }} -> Acc ;
@@ -2386,20 +2380,19 @@ default_strategy_fun() ->
2386
2380
1 -> 0 ;
2387
2381
_ -> 1
2388
2382
end ,
2389
- Seq = lists :seq (1 , NumWorkers ),
2390
- lists :map (fun (X ) ->
2391
- L2 = lists :seq (X - 1 , NumTests - Decr , NumWorkers ),
2392
- {_Start , _NumTests } = {hd (L2 ), lists :last (L2 )}
2393
- end , Seq )
2383
+ [begin
2384
+ L2 = lists :seq (X - 1 , NumTests - Decr , NumWorkers ),
2385
+ {hd (L2 ), lists :last (L2 )} % {_Start, _NumTests}
2386
+ end || X <- lists :seq (1 , NumWorkers )]
2394
2387
end .
2395
2388
2396
2389
% % @private
2397
- - spec update_worker_node_ref ({node (), {already_running , boolean ()}}) -> list ( node ()) .
2390
+ - spec update_worker_node_ref ({node (), {already_running , boolean ()}}) -> [ node ()] .
2398
2391
update_worker_node_ref (NodeName ) ->
2399
2392
NewMap = case get (worker_nodes ) of
2400
- undefined -> [NodeName ];
2401
- Map -> [NodeName |Map ]
2402
- end ,
2393
+ undefined -> [NodeName ];
2394
+ Map -> [NodeName |Map ]
2395
+ end ,
2403
2396
put (worker_nodes , NewMap ).
2404
2397
2405
2398
% % @private
@@ -2457,27 +2450,23 @@ maybe_load_binary(Nodes, Module) ->
2457
2450
% % @private
2458
2451
- spec ensure_code_loaded ([node ()]) -> 'ok' .
2459
2452
ensure_code_loaded (Nodes ) ->
2460
- % % we get all the files that need to be loaded from the current directory
2453
+ % % get all the files that need to be loaded from the current directory
2461
2454
Files = filelib :wildcard (" **/*.beam" ),
2462
2455
% % but we only care about the filename, without the .beam extension
2463
- Modules = [erlang :list_to_atom (filename :basename (File , " .beam" )) || File <- Files ],
2464
-
2465
- % % call the functions needed to ensure that all modules are available on the nodes
2456
+ Modules = [list_to_atom (filename :basename (File , " .beam" )) || File <- Files ],
2457
+ % % ensure that all modules are available on the nodes
2466
2458
lists :foreach (fun (Module ) -> maybe_load_binary (Nodes , Module ) end , Modules ),
2467
- lists :foreach (fun (P ) -> rpc :multicall (Nodes , code , add_patha , [P ]) end , code :get_path ()),
2459
+ lists :foreach (fun (P ) -> rpc :multicall (Nodes , code , add_patha , [P ]) end ,
2460
+ code :get_path ()),
2468
2461
_ = rpc :multicall (Nodes , code , ensure_modules_loaded , [Modules ]),
2469
2462
ok .
2470
2463
2471
2464
% % @private
2472
2465
% % @doc Starts multiple (NumNodes) remote nodes.
2473
- - spec start_nodes (non_neg_integer ()) -> list ( node ()) .
2466
+ - spec start_nodes (non_neg_integer ()) -> [ node ()] .
2474
2467
start_nodes (NumNodes ) ->
2475
- StartNodeFun =
2476
- fun (N ) ->
2477
- SlaveName = list_to_atom (" proper_slave_" ++ integer_to_list (N )),
2478
- _ = start_node (SlaveName )
2479
- end ,
2480
- lists :map (StartNodeFun , lists :seq (1 , NumNodes )).
2468
+ [start_node (list_to_atom (" proper_slave_" ++ integer_to_list (N )))
2469
+ || N <- lists :seq (1 , NumNodes )].
2481
2470
2482
2471
% % @private
2483
2472
% % @doc Stops all the registered (started) nodes.
@@ -2486,23 +2475,20 @@ stop_nodes() ->
2486
2475
case get (worker_nodes ) of
2487
2476
undefined -> ok ;
2488
2477
Nodes ->
2489
- NodesToStop = lists :filter (fun ({_N , {already_running , Bool }}) -> not Bool end , Nodes ),
2490
- lists :foreach (fun ({Node , _ }) -> slave :stop (Node ) end , NodesToStop ),
2478
+ StopFun = fun ({Node , {already_running , false }}) -> slave :stop (Node );
2479
+ ({_Node , {already_running , true }}) -> ok
2480
+ end ,
2481
+ lists :foreach (StopFun , Nodes ),
2491
2482
_ = net_kernel :stop (),
2492
2483
erase (worker_nodes ),
2493
2484
ok
2494
2485
end .
2495
2486
2496
2487
% % @private
2497
2488
% % @doc Unlinks and kills all the workers.
2498
- - spec kill_workers (list ( pid ()) ) -> ok .
2489
+ - spec kill_workers ([ pid ()] ) -> ok .
2499
2490
kill_workers (WorkerList ) ->
2500
- UnlinkAndKill =
2501
- fun (P ) ->
2502
- unlink (P ),
2503
- exit (P , kill )
2504
- end ,
2505
- lists :foreach (UnlinkAndKill , WorkerList ).
2491
+ lists :foreach (fun (P ) -> unlink (P ), exit (P , kill ) end , WorkerList ).
2506
2492
2507
2493
% %-----------------------------------------------------------------------------
2508
2494
% % Stats printing functions
0 commit comments