view tests/test-check-module-imports.t @ 49991:3997c64eff8b

test: use a more direct approach to test racy mutation The previous test was relying on implementation details and harder to maintain. The new version is closer to the initial intend : "What happens the file get overwritten from under the current process" This change is motivated by further changes around the transaction and dirstate logic that would break the fragile equilibrium that existed before this patch. Making this change early make it easier to review on its own and remove noise in future larger changes.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 07 Feb 2023 13:14:59 +0100
parents 72ff7cd05176
children 8b3cc36009ec
line wrap: on
line source

#require test-repo hg10

  $ . "$TESTDIR/helpers-testrepo.sh"
  $ import_checker="$TESTDIR"/../contrib/import-checker.py

  $ cd "$TESTDIR"/..

There are a handful of cases here that require renaming a module so it
doesn't overlap with a stdlib module name. There are also some cycles
here that we should still endeavor to fix, and some cycles will be
hidden by deduplication algorithm in the cycle detector, so fixing
these may expose other cycles.

Known-bad files are excluded by -X as some of them would produce unstable
outputs, which should be fixed later.

NOTE: the `hg locate` command here only works on files that are known to
Mercurial. If you add an import of a new file and haven't yet `hg add`ed it, you
will likely receive warnings about a direct import.

  $ testrepohg locate 'set:**.py or grep(r"^#!.*?python")' \
  > 'tests/**.t' \
  > -X hgweb.cgi \
  > -X setup.py \
  > -X contrib/automation/ \
  > -X contrib/debugshell.py \
  > -X contrib/hgweb.fcgi \
  > -X contrib/packaging/hg-docker \
  > -X contrib/packaging/hgpackaging/ \
  > -X contrib/packaging/inno/ \
  > -X contrib/phab-clean.py \
  > -X contrib/python-zstandard/ \
  > -X contrib/win32/hgwebdir_wsgi.py \
  > -X contrib/perf-utils/perf-revlog-write-plot.py \
  > -X doc/gendoc.py \
  > -X doc/hgmanpage.py \
  > -X i18n/posplit \
  > -X mercurial/thirdparty \
  > -X tests/hypothesishelpers.py \
  > -X tests/test-check-interfaces.py \
  > -X tests/test-demandimport.py \
  > -X tests/test-imports-checker.t \
  > -X tests/test-verify-repo-operations.py \
  > -X tests/test-extension.t \
  > | sed 's-\\-/-g' | "$PYTHON" "$import_checker" -