tests/test-check-shbang.t
author Simon Sapin <simon.sapin@octobus.net>
Fri, 10 Dec 2021 16:18:58 +0100
changeset 48454 473af5cbc209
parent 43692 2d8d4e08c493
child 49950 37de1a154472
permissions -rw-r--r--
rhg: Add support for `rhg status --copies` Copy sources are collected during `status()` rather than after the fact like in Python, because `status()` takes a `&mut` exclusive reference to the dirstate map (in order to potentially mutate it for directory mtimes) and returns `Cow<'_, HgPath>` that borrow the dirstate map. Even though with `Cow` only some shared borrows remain, the still extend the same lifetime of the initial `&mut` so the dirstate map cannot be borrowed again to access copy sources after the fact: https://doc.rust-lang.org/nomicon/lifetime-mismatch.html#limits-of-lifetimes Additionally, collecting copy sources during the dirstate tree traversal that `status()` already does avoids the cost of another traversal or other lookups (though I haven’t benchmarked that cost). Differential Revision: https://phab.mercurial-scm.org/D11899
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28879
8c1759a2bdf4 tests: add new test for #! shebang lines
timeless <timeless@mozdev.org>
parents: 27569
diff changeset
     1
#require test-repo
27569
b3eba79b7e04 tests: add test-check-execute.t
timeless <timeless@mozdev.org>
parents:
diff changeset
     2
29219
3c9066ed557c tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents: 28879
diff changeset
     3
  $ . "$TESTDIR/helpers-testrepo.sh"
27569
b3eba79b7e04 tests: add test-check-execute.t
timeless <timeless@mozdev.org>
parents:
diff changeset
     4
  $ cd "`dirname "$TESTDIR"`"
b3eba79b7e04 tests: add test-check-execute.t
timeless <timeless@mozdev.org>
parents:
diff changeset
     5
28879
8c1759a2bdf4 tests: add new test for #! shebang lines
timeless <timeless@mozdev.org>
parents: 27569
diff changeset
     6
look for python scripts that do not use /usr/bin/env
27569
b3eba79b7e04 tests: add test-check-execute.t
timeless <timeless@mozdev.org>
parents:
diff changeset
     7
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33116
diff changeset
     8
  $ testrepohg files 'set:grep(r"^#!.*?python") and not grep(r"^#!/usr/bi{1}n/env python") - **/*.t'
27569
b3eba79b7e04 tests: add test-check-execute.t
timeless <timeless@mozdev.org>
parents:
diff changeset
     9
  [1]
b3eba79b7e04 tests: add test-check-execute.t
timeless <timeless@mozdev.org>
parents:
diff changeset
    10
32939
cad62cb3c84c tests: enforce use of $PYTHON in tests
Augie Fackler <augie@google.com>
parents: 29515
diff changeset
    11
In tests, enforce $PYTHON and *not* /usr/bin/env python or similar:
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33116
diff changeset
    12
  $ testrepohg files 'set:grep(r"#!.*?python") and **/*.t' \
32939
cad62cb3c84c tests: enforce use of $PYTHON in tests
Augie Fackler <augie@google.com>
parents: 29515
diff changeset
    13
  > -X tests/test-check-execute.t \
43692
2d8d4e08c493 tests: verify that Python scripts are blackened
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33204
diff changeset
    14
  > -X tests/test-check-format.t \
32939
cad62cb3c84c tests: enforce use of $PYTHON in tests
Augie Fackler <augie@google.com>
parents: 29515
diff changeset
    15
  > -X tests/test-check-module-imports.t \
cad62cb3c84c tests: enforce use of $PYTHON in tests
Augie Fackler <augie@google.com>
parents: 29515
diff changeset
    16
  > -X tests/test-check-pyflakes.t \
cad62cb3c84c tests: enforce use of $PYTHON in tests
Augie Fackler <augie@google.com>
parents: 29515
diff changeset
    17
  > -X tests/test-check-shbang.t
cad62cb3c84c tests: enforce use of $PYTHON in tests
Augie Fackler <augie@google.com>
parents: 29515
diff changeset
    18
  [1]
cad62cb3c84c tests: enforce use of $PYTHON in tests
Augie Fackler <augie@google.com>
parents: 29515
diff changeset
    19
cad62cb3c84c tests: enforce use of $PYTHON in tests
Augie Fackler <augie@google.com>
parents: 29515
diff changeset
    20
The above exclusions are because they're looking for files that
cad62cb3c84c tests: enforce use of $PYTHON in tests
Augie Fackler <augie@google.com>
parents: 29515
diff changeset
    21
contain Python but don't end in .py - please avoid adding more.
cad62cb3c84c tests: enforce use of $PYTHON in tests
Augie Fackler <augie@google.com>
parents: 29515
diff changeset
    22
28879
8c1759a2bdf4 tests: add new test for #! shebang lines
timeless <timeless@mozdev.org>
parents: 27569
diff changeset
    23
look for shell scripts that do not use /bin/sh
27569
b3eba79b7e04 tests: add test-check-execute.t
timeless <timeless@mozdev.org>
parents:
diff changeset
    24
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33116
diff changeset
    25
  $ testrepohg files 'set:grep(r"^#!.*/bi{1}n/sh") and not grep(r"^#!/bi{1}n/sh")'
27569
b3eba79b7e04 tests: add test-check-execute.t
timeless <timeless@mozdev.org>
parents:
diff changeset
    26
  [1]