mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 17:27:53 +03:00
a761dbd527
Summary: This test is broken after D12849852 because the grep outputs the files in different order during multiple test runs. Let's fix it by sorting the output from the command. Reviewed By: phillco Differential Revision: D12869810 fbshipit-source-id: 49073e83e926e94db5f0bd290d74845ebfde0bb6
109 lines
2.9 KiB
Perl
109 lines
2.9 KiB
Perl
$ cat >> $HGRCPATH << EOF
|
|
> [extensions]
|
|
> tweakdefaults=
|
|
> rebase=
|
|
> EOF
|
|
|
|
Set up the repository with some simple files
|
|
$ hg init repo
|
|
$ cd repo
|
|
$ mkdir grepdir
|
|
$ cd grepdir
|
|
$ echo 'foobarbaz' > grepfile1
|
|
$ echo 'foobarboo' > grepfile2
|
|
$ mkdir subdir1
|
|
$ echo 'foobar_subdir' > subdir1/subfile1
|
|
$ mkdir subdir2
|
|
$ echo 'foobar_dirsub' > subdir2/subfile2
|
|
$ hg add grepfile1
|
|
$ hg add grepfile2
|
|
$ hg add subdir1/subfile1
|
|
$ hg add subdir2/subfile2
|
|
$ hg commit -m "Added some files"
|
|
$ echo 'foobarbazboo' > untracked1
|
|
|
|
Make sure grep finds patterns in tracked files, and excludes untracked files
|
|
$ hg grep -n foobar
|
|
grepfile1:1:foobarbaz
|
|
grepfile2:1:foobarboo
|
|
subdir1/subfile1:1:foobar_subdir
|
|
subdir2/subfile2:1:foobar_dirsub
|
|
$ hg grep -n barbaz
|
|
grepfile1:1:foobarbaz
|
|
$ hg grep -n barbaz .
|
|
grepfile1:1:foobarbaz
|
|
|
|
Test searching in subdirectories, from the repository root
|
|
$ hg grep -n foobar subdir1
|
|
subdir1/subfile1:1:foobar_subdir
|
|
$ hg grep -n foobar sub*
|
|
subdir1/subfile1:1:foobar_subdir
|
|
subdir2/subfile2:1:foobar_dirsub
|
|
|
|
Test searching in a sibling subdirectory, using a relative path
|
|
$ cd subdir1
|
|
$ hg grep -n foobar ../subdir2
|
|
../subdir2/subfile2:1:foobar_dirsub
|
|
$ hg grep -n foobar
|
|
subfile1:1:foobar_subdir
|
|
$ hg grep -n foobar .
|
|
subfile1:1:foobar_subdir
|
|
$ cd ..
|
|
|
|
Test mercurial file patterns
|
|
$ hg grep -n foobar 'glob:*rep*'
|
|
grepfile1:1:foobarbaz
|
|
grepfile2:1:foobarboo
|
|
|
|
Test using alternative grep commands
|
|
$ hg grep -i FooBarB
|
|
grepfile1:foobarbaz
|
|
grepfile2:foobarboo
|
|
#if osx
|
|
$ hg grep FooBarB
|
|
[1]
|
|
#else
|
|
$ hg grep FooBarB
|
|
[123]
|
|
#endif
|
|
$ hg grep --config grep.command='grep -i' FooBarB
|
|
grepfile1:foobarbaz
|
|
grepfile2:foobarboo
|
|
$ hg grep --config grep.command='echo searching' FooBarB subdir1
|
|
searching * -- subdir1/subfile1 (glob)
|
|
$ hg grep --config grep.command='echo foo ; false' FooBarB subdir2
|
|
foo ; false * -- subdir2/subfile2 (glob)
|
|
|
|
Test --include flag
|
|
$ hg grep --include '**/*file1' -n foobar
|
|
grepfile1:1:foobarbaz
|
|
subdir1/subfile1:1:foobar_subdir
|
|
$ hg grep -I '**/*file1' -n foobar
|
|
grepfile1:1:foobarbaz
|
|
subdir1/subfile1:1:foobar_subdir
|
|
|
|
Test --exclude flag
|
|
$ hg grep --exclude '**/*file1' -n foobar
|
|
grepfile2:1:foobarboo
|
|
subdir2/subfile2:1:foobar_dirsub
|
|
$ hg grep -X '**/*file1' -n foobar
|
|
grepfile2:1:foobarboo
|
|
subdir2/subfile2:1:foobar_dirsub
|
|
|
|
Test --include and --exclude flags together
|
|
$ hg grep --include '**/*file1' --exclude '**/grepfile1' -n foobar
|
|
subdir1/subfile1:1:foobar_subdir
|
|
$ hg grep -I '**/*file1' -X '**/grepfile1' -n foobar
|
|
subdir1/subfile1:1:foobar_subdir
|
|
|
|
Test basic biggrep client
|
|
$ hg grep --config grep.biggrepclient=$TESTDIR/fake-biggrep-client.py \
|
|
> --config grep.usebiggrep=True --config grep.biggrepcorpus=fake foobar \
|
|
> | sort
|
|
\x1b[35m\x1b[Kfakefile\x1b[m\x1b[K\x1b[36m\x1b[K:\x1b[m\x1b[Kfakeresult (esc)
|
|
grepfile1:foobarbaz
|
|
grepfile2:foobarboo
|
|
subdir1/subfile1:foobar_subdir
|
|
subdir2/subfile2:foobar_dirsub
|
|
|