sapling/eden/scm/tests/test-check-execute.t
Xavier Deguillard 467f4aef45 tests: mark python3 tests as passing
Summary:
Ran ./run-tests.py --json and used the following script:

  import json
  import subprocess

  with open("report.json", "r") as f:
      tests = json.load(f)
      for name, t in tests.items():
          if t["result"] == "success":
              print("%s successful" % name)
              subprocess.run("sed -i '/#require py2/d' %s" % name, shell=True)
              subprocess.run("sed -i '/require.*py2/d' %s" % name, shell=True)

Reviewed By: singhsrb

Differential Revision: D19664298

fbshipit-source-id: fa67c7c7abd110c9f0df9345daf09f2792aacd44
2020-01-31 10:13:45 -08:00

35 lines
1.4 KiB
Perl

#chg-compatible
#require test-repo execbit hg10
$ . "$TESTDIR/helpers-testrepo.sh"
$ cd "`dirname "$TESTDIR"`"
$ testrepohg files . > "$TESTTMP/filelist"
$ python << EOF
> import os, stat
> for path in open(os.path.join(os.environ["TESTTMP"], "filelist")).read().splitlines():
> if path.startswith("fb/"):
> continue
> content = open(path, "rb").read()
> isexec = bool(stat.S_IEXEC & os.stat(path).st_mode)
> ispy = path.endswith(".py")
> issh = path.endswith(".sh")
> isrs = path.endswith(".rs")
> if content.startswith(b"#!"):
> interpreter = os.path.basename(content.split(b"\n")[0].split()[-1])
> else:
> interpreter = None
> if ispy and isexec and interpreter not in {b"python", b"python2", b"python3"}:
> print("%s is a Python script but does not have Python interpreter specified" % path)
> elif issh and isexec and interpreter not in {b"sh", b"bash", b"zsh", b"fish"}:
> print("%s is a Shell script but does not have Shell interpreter specified" % path)
> elif isexec and not interpreter:
> print("%s is executable but does not have #!" % path)
> elif not isexec and interpreter and not isrs:
> print("%s is not an executable but does have #!" % path)
> EOF
tests/infinitepush/library.sh is not an executable but does have #!
tests/stresstest-atomicreplace.py is not an executable but does have #!