sapling/tests/test-hgext-perfsuite.t
Phil Cohen 487a3fb991 repogenerator: add new files and directories over time
Summary:
The megarepo generator now adds new directories and files automatically. We now pick folders and paths randomly, with a configurable number of subdirectories and a configurable length for the leaf filename, and a fixed alphabet.

The array of directories and leaf filenames are prorated: they start out constrained and grow as we approach our desired number of commits to generate (`repogenerator.numcommits`), so as not to be too sparse initially.

The directory array is randomized initially, so the above proration doesn't lead to a trivial edit pattern (e.g. everything in a/* initially.)

Lastly, we now stop generation when we hit our goal.

Reviewed By: quark-zju

Differential Revision: D7572968

fbshipit-source-id: b60d60b6262962ee114cb19b0989e6a1af8c0549
2018-04-13 21:51:54 -07:00

110 lines
2.6 KiB
Perl

#require symlink execbit
$ cat << EOF >> $HGRCPATH
> [extensions]
> amend=
> perfsuite=
> rebase=
> [perfsuite]
> rebase.masterdistance=1
> immrebase.masterdistance=0
> [remotefilelog]
> reponame=test
> EOF
$ hg init repo1
$ hg -R repo1 debugdrawdag <<'EOS'
> d
> |
> c
> |
> b
> |
> a
> EOS
$ hg book -R repo1 -r d master
$ hg clone repo1 repo2
updating to branch default
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R repo2 perftestsuite --seed 1 --traceback
ran 'commit' in * sec (glob)
ran 'amend' in * sec (glob)
ran 'status' in * sec (glob)
ran 'revert' in * sec (glob)
ran 'rebase' in * sec (glob)
ran 'immrebase' in * sec (glob)
ran 'pull' in * sec (glob)
--print
$ hg clone repo1 repo3
updating to branch default
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R repo3 perftestsuite --seed 1 --print
stdout: ? i/s/o/aae
? t/y/c/aag
? u/r/l/aaa
? v/f/r/aab
? v/f/r/aaf
stdout: adding i/s/o/aae
adding t/y/c/aag
adding u/r/l/aaa
adding v/f/r/aab
adding v/f/r/aaf
ran 'commit' in * sec (glob)
stdout: M v/f/r/aab
? m/h/f/aag
? u/r/l/aag
? v/f/r/aaa
? v/f/r/aac
? z/y/x/aae
stdout: adding m/h/f/aag
adding u/r/l/aag
adding v/f/r/aaa
adding v/f/r/aac
adding z/y/x/aae
stdout: saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/20b2121f9781-5b3ae32a-amend.hg
ran 'amend' in * sec (glob)
stdout: ! u/r/l/aaa
? h/o/v/aag
? i/s/o/aag
? t/y/c/aab
? t/y/c/aaf
ran 'status' in * sec (glob)
stdout: reverting repo3/u/r/l/aaa
ran 'revert' in * sec (glob)
stdout: rebasing 4:b17a0147d61c "test commit" (tip)
saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/b17a0147d61c-bd5f50f4-rebase.hg
ran 'rebase' in * sec (glob)
stdout: 1 files updated, 0 files merged, 10 files removed, 0 files unresolved
(activating bookmark master)
stdout: rebasing 4:f8d4b0697695 "test commit" (tip)
saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/f8d4b0697695-7388783a-rebase.hg
ran 'immrebase' in * sec (glob)
stdout: pulling from $TESTTMP/repo1
searching for changes
no changes found
ran 'pull' in * sec (glob)
--profile
$ hg clone repo1 repo4
updating to branch default
4 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg -R repo4 perftestsuite --seed 1 --use-profile --print 2>&1 | grep "Sample count"
Sample count: * (glob)
Sample count: * (glob)
Sample count: * (glob)
Sample count: * (glob)
Sample count: * (glob)
Sample count: * (glob)
Sample count: * (glob)