|  | #!/bin/sh | 
|  |  | 
|  | test_description="Tests performance of cache tree update operations" | 
|  |  | 
|  | . ./perf-lib.sh | 
|  |  | 
|  | test_perf_large_repo | 
|  | test_checkout_worktree | 
|  |  | 
|  | count=100 | 
|  |  | 
|  | test_expect_success 'setup cache tree' ' | 
|  | git write-tree | 
|  | ' | 
|  |  | 
|  | test_cache_tree () { | 
|  | test_perf "$1, $3" " | 
|  | for i in \$(test_seq $count) | 
|  | do | 
|  | test-tool cache-tree $4 $2 | 
|  | done | 
|  | " | 
|  | } | 
|  |  | 
|  | test_cache_tree_update_functions () { | 
|  | test_cache_tree 'no-op' 'control' "$1" "$2" | 
|  | test_cache_tree 'prime_cache_tree' 'prime' "$1" "$2" | 
|  | test_cache_tree 'cache_tree_update' 'update' "$1" "$2" | 
|  | } | 
|  |  | 
|  | test_cache_tree_update_functions "clean" "" | 
|  | test_cache_tree_update_functions "invalidate 2" "--invalidate 2" | 
|  | test_cache_tree_update_functions "invalidate 50" "--invalidate 50" | 
|  | test_cache_tree_update_functions "empty" "--empty" | 
|  |  | 
|  | test_done |