Input buildinfo: https://buildinfos.debian.net/buildinfo-pool/n/node-anymatch/node-anymatch_3.1.1+~2.2.2-1_all.buildinfo Use metasnap for getting required timestamps New buildinfo file: /tmp/node-anymatch-3.1.1+~2.2.2-1elrd1ilv/node-anymatch_3.1.1+~2.2.2-1_all.buildinfo Get source package info: node-anymatch=3.1.1+~2.2.2-1 Source URL: http://snapshot.notset.fr/mr/package/node-anymatch/3.1.1+~2.2.2-1/srcfiles?fileinfo=1 env -i PATH=/usr/sbin:/usr/bin:/sbin:/bin TMPDIR=/tmp mmdebstrap --arch=amd64 --include=adduser=3.118 autoconf=2.69-11.1 automake=1:1.16.2-1 autopoint=0.19.8.1-10 autotools-dev=20180224.1 base-files=11 base-passwd=3.5.47 bash=5.0-6 binutils=2.34-8 binutils-common=2.34-8 binutils-x86-64-linux-gnu=2.34-8 bsdmainutils=11.1.2+b1 bsdutils=1:2.35.1-5 build-essential=12.8 bzip2=1.0.8-2 ca-certificates=20190110 coreutils=8.30-3+b1 cpp=4:9.2.1-3.1 cpp-9=9.3.0-13 dash=0.5.10.2-7 debconf=1.5.74 debhelper=13.1 debianutils=4.9.1 devscripts=2.20.3 dh-autoreconf=19 dh-strip-nondeterminism=1.8.0-1 diffutils=1:3.7-3 dirmngr=2.2.20-1 dpkg=1.19.7 dpkg-dev=1.19.7 dwz=0.13-5 fakeroot=1.24-1 file=1:5.38-5 findutils=4.7.0-1 g++=4:9.2.1-3.1 g++-9=9.3.0-13 gcc=4:9.2.1-3.1 gcc-10-base=10.1.0-2 gcc-9=9.3.0-13 gcc-9-base=9.3.0-13 gettext=0.19.8.1-10 gettext-base=0.19.8.1-10 gnupg=2.2.20-1 gnupg-l10n=2.2.20-1 gnupg-utils=2.2.20-1 gpg=2.2.20-1 gpg-agent=2.2.20-1 gpg-wks-client=2.2.20-1 gpg-wks-server=2.2.20-1 gpgconf=2.2.20-1 gpgsm=2.2.20-1 gpgv=2.2.20-1 grep=3.4-1 groff-base=1.22.4-5 gzip=1.10-2 hostname=3.23 init-system-helpers=1.57 intltool-debian=0.35.0+20060710.5 libacl1=2.2.53-8 libarchive-zip-perl=1.68-1 libarray-unique-perl=0.08-2 libasan5=9.3.0-13 libassuan0=2.5.3-7 libatomic1=10.1.0-2 libattr1=1:2.4.48-5 libaudit-common=1:2.8.5-3 libaudit1=1:2.8.5-3+b1 libb-hooks-op-check-perl=0.22-1+b2 libbinutils=2.34-8 libblkid1=2.35.1-5 libbrotli1=1.0.7-6.1 libbsd0=0.10.0-1 libbz2-1.0=1.0.8-2 libc-ares2=1.16.1-1 libc-bin=2.30-8 libc-dev-bin=2.30-8 libc6=2.30-8 libc6-dev=2.30-8 libcap-ng0=0.7.9-2.1+b2 libcc1-0=10.1.0-2 libclass-accessor-perl=0.51-1 libclass-method-modifiers-perl=2.13-1 libcroco3=0.6.13-1 libcrypt-dev=1:4.4.16-1 libcrypt1=1:4.4.16-1 libctf-nobfd0=2.34-8 libctf0=2.34-8 libdb5.3=5.3.28+dfsg1-0.6 libdebconfclient0=0.252 libdebhelper-perl=13.1 libdebian-copyright-perl=0.2-4 libdevel-callchecker-perl=0.008-1+b1 libdpkg-perl=1.19.7 libdynaloader-functions-perl=0.003-1 libelf1=0.176-1.1 libencode-locale-perl=1.05-1 liberror-perl=0.17029-1 libexpat1=2.2.9-1 libexporter-lite-perl=0.08-1 libfakeroot=1.24-1 libffi7=3.3-4 libfile-homedir-perl=1.004-1 libfile-listing-perl=6.04-1 libfile-stripnondeterminism-perl=1.8.0-1 libfile-which-perl=1.23-1 libgcc-9-dev=9.3.0-13 libgcc-s1=10.1.0-2 libgcrypt20=1.8.5-5 libgdbm-compat4=1.18.1-5 libgdbm6=1.18.1-5 libgdk-pixbuf2.0-0=2.40.0+dfsg-4 libgdk-pixbuf2.0-common=2.40.0+dfsg-4 libglib2.0-0=2.64.2-1 libgmp10=2:6.2.0+dfsg-4 libgnutls30=3.6.13-2 libgomp1=10.1.0-2 libgpg-error0=1.37-1 libhogweed5=3.5.1+really3.5.1-2 libhtml-parser-perl=3.72-5 libhtml-tagset-perl=3.20-4 libhtml-tree-perl=5.07-2 libhttp-cookies-perl=6.08-1 libhttp-date-perl=6.05-1 libhttp-message-perl=6.24-1 libhttp-negotiate-perl=6.01-1 libicu63=63.2-3 libidn2-0=2.3.0-1 libimport-into-perl=1.002005-1 libio-html-perl=1.001-1 libio-pty-perl=1:1.12-1 libio-socket-ssl-perl=2.067-1 libio-stringy-perl=2.111-3 libipc-run-perl=20200505.0-1 libisl22=0.22.1-1 libitm1=10.1.0-2 libjbig0=2.1-3.1+b2 libjpeg62-turbo=1:1.5.2-2+b1 libjs-inherits=2.0.4-1 libjs-sprintf-js=1.1.2+ds1-1 libjson-perl=4.02000-2 libksba8=1.3.5-2 libldap-2.4-2=2.4.50+dfsg-1 libldap-common=2.4.50+dfsg-1 liblsan0=10.1.0-2 liblwp-mediatypes-perl=6.04-1 liblwp-protocol-https-perl=6.07-2 liblz4-1=1.9.2-2 liblzma5=5.2.4-1+b1 libmagic-mgc=1:5.38-5 libmagic1=1:5.38-5 libmodule-runtime-perl=0.016-1 libmoo-perl=2.004000-1 libmount1=2.35.1-5 libmpc3=1.1.0-1 libmpdec2=2.4.2-3 libmpfr6=4.0.2-1 libncursesw6=6.2-1 libnet-http-perl=6.19-1 libnet-ssleay-perl=1.88-3 libnettle7=3.5.1+really3.5.1-2 libnghttp2-14=1.40.0-1 libnode64=10.20.1~dfsg-1 libnotify-bin=0.7.9-1 libnotify4=0.7.9-1 libnpth0=1.6-1 libp11-kit0=0.23.20-1 libpam-modules=1.3.1-5 libpam-modules-bin=1.3.1-5 libpam-runtime=1.3.1-5 libpam0g=1.3.1-5 libparams-classify-perl=0.015-1+b2 libparse-debcontrol-perl=2.005-4 libpcre2-8-0=10.34-7 libpcre3=2:8.39-12+b1 libperl5.30=5.30.2-1 libpipeline1=1.5.2-2 libpng16-16=1.6.37-2 libpython3-stdlib=3.8.2-3 libpython3.8-minimal=3.8.3-1 libpython3.8-stdlib=3.8.3-1 libquadmath0=10.1.0-2 libreadline8=8.0-4 librole-tiny-perl=2.001004-1 libsasl2-2=2.1.27+dfsg-2 libsasl2-modules-db=2.1.27+dfsg-2 libseccomp2=2.4.3-1+b1 libselinux1=3.0-1+b3 libsemanage-common=3.0-1 libsemanage1=3.0-1+b3 libsepol1=3.0-1 libsigsegv2=2.12-2 libsmartcols1=2.35.1-5 libsqlite3-0=3.31.1-5 libssl1.1=1.1.1g-1 libstdc++-9-dev=9.3.0-13 libstdc++6=10.1.0-2 libstrictures-perl=2.000006-1 libsub-name-perl=0.26-1 libsub-override-perl=0.09-2 libsub-quote-perl=2.006006-1 libsystemd0=245.5-3 libtasn1-6=4.16.0-2 libtie-ixhash-perl=1.23-2 libtiff5=4.1.0+git191117-2 libtimedate-perl=2.3200-1 libtinfo6=6.2-1 libtool=2.4.6-14 libtry-tiny-perl=0.30-1 libtsan0=10.1.0-2 libubsan1=10.1.0-2 libuchardet0=0.0.6-3 libudev1=245.5-3 libunistring2=0.9.10-2 liburi-perl=1.76-2 libuuid1=2.35.1-5 libuv1=1.35.0-2 libwebp6=0.6.1-2+b1 libwww-perl=6.44-1 libwww-robotrules-perl=6.02-1 libx11-6=2:1.6.9-2+b1 libx11-data=2:1.6.9-2 libxau6=1:1.0.8-1+b2 libxcb1=1.14-2 libxdmcp6=1:1.1.2-3 libxml2=2.9.10+dfsg-5 libzstd1=1.4.4+dfsg-3 linux-libc-dev=5.6.7-1 login=1:4.8.1-1 lsb-base=11.1.0 m4=1.4.18-4 make=4.2.1-2+b1 man-db=2.9.1-1 mawk=1.3.4.20200120-2 mime-support=3.64 mocha=7.0.1+ds1-2 ncurses-base=6.2-1 ncurses-bin=6.2-1 netbase=6.1 node-ansi-regex=5.0.0-1 node-ansi-styles=4.2.1-1 node-anymatch=3.1.1+~2.1.1-1 node-argparse=1.0.10-2 node-arrify=2.0.1-1 node-async-each=1.0.3-1 node-balanced-match=1.0.0-1 node-binary-extensions=2.0.0-1 node-brace-expansion=1.1.11-1 node-braces=3.0.2-2 node-browser-stdout=1.3.1-2 node-camelcase=5.3.1-1 node-chalk=2.4.2-1 node-chokidar=3.3.1-2 node-cliui=4.1.0-2 node-clone=2.1.2-2 node-color-convert=1.9.3-1 node-color-name=1.1.4-1 node-commander=4.0.1+really2.20.0-2 node-concat-map=0.0.1-2 node-cross-spawn=5.1.0-3 node-debug=4.1.1+~cs4.1.5-1 node-decamelize=4.0.0-1 node-defaults=1.0.3-2 node-define-properties=1.1.3-1 node-diff=1.4.0~dfsg-3 node-end-of-stream=1.4.4-1 node-escape-string-regexp=4.0.0-1 node-esprima=4.0.1+ds-2 node-execa=0.10.0+dfsg-1 node-fill-range=7.0.1-2 node-find-up=4.1.0-2 node-fs.realpath=1.0.0-1 node-function-bind=1.1.1+repack-1 node-get-caller-file=1.0.2-1 node-get-stream=4.1.0-1 node-glob=7.1.6-1 node-glob-parent=3.1.0-1 node-graceful-fs=4.2.4-1 node-growl=1.10.5-2 node-has-flag=4.0.0-1 node-he=1.2.0-1 node-inflight=1.0.6-1 node-inherits=2.0.4-1 node-invert-kv=1.0.0-1 node-is-binary-path=2.1.0-1 node-is-buffer=1.1.6-1 node-is-extglob=2.1.1-1 node-is-glob=4.0.1-1 node-is-number=7.0.0-1 node-is-stream=1.1.0-1 node-isexe=2.0.0-4 node-js-yaml=3.13.1+dfsg-2 node-kind-of=6.0.3+dfsg-1 node-lcid=1.0.0-1 node-locate-path=5.0.0-2 node-lodash=4.17.15+dfsg-2 node-lodash-packages=4.17.15+dfsg-2 node-lru-cache=5.1.1-5 node-mem=1.1.0-1 node-micromatch=4.0.2+repack-3 node-mimic-fn=3.0.0-1 node-minimatch=3.0.4-4 node-mkdirp=0.5.1-2 node-ms=2.1.2+~cs0.7.31-1 node-normalize-path=3.0.0-2 node-npm-run-path=2.0.2-2 node-once=1.4.0-3 node-os-locale=4.0.0-1 node-p-finally=1.0.0-2 node-p-limit=2.2.2-1 node-p-locate=2.0.0-1 node-path-dirname=1.0.2-1 node-path-exists=4.0.0-2 node-path-is-absolute=2.0.0-1 node-pump=3.0.0-2 node-readdirp=3.3.0-2 node-repeat-string=1.6.1-1 node-require-directory=2.1.1-1 node-require-main-filename=1.0.1-1 node-set-blocking=2.0.0-1 node-set-immediate-shim=1.0.1-1 node-shebang-command=1.2.0-1 node-shebang-regex=2.0.0-1 node-signal-exit=3.0.3-1 node-sprintf-js=1.1.2+ds1-1 node-string-width=4.2.0-1 node-strip-ansi=6.0.0-2 node-strip-eof=1.0.0-2 node-supports-color=6.1.0-2 node-to-regex-range=5.0.1-2 node-wcwidth.js=1.0.0-1 node-which=2.0.2-1 node-which-module=2.0.0-1 node-wide-align=1.1.3-1 node-wrap-ansi=4.0.0-2 node-wrappy=1.0.2-1 node-y18n=4.0.0-2 node-yallist=4.0.0-1 node-yargs=15.3.0-1 node-yargs-parser=18.1.1-1 nodejs=10.20.1~dfsg-1 openssl=1.1.1g-1 passwd=1:4.8.1-1 patch=2.7.6-6 patchutils=0.3.4-2+b1 perl=5.30.2-1 perl-base=5.30.2-1 perl-modules-5.30=5.30.2-1 perl-openssl-defaults=5 pinentry-curses=1.1.0-4 pkg-js-tools=0.9.36 po-debconf=1.0.21 python3=3.8.2-3 python3-minimal=3.8.2-3 python3.8=3.8.3-1 python3.8-minimal=3.8.3-1 readline-common=8.0-4 sed=4.7-1 sensible-utils=0.0.12+nmu1 shared-mime-info=1.15-1 sysvinit-utils=2.96-3 tar=1.30+dfsg-7 util-linux=2.35.1-5 wdiff=1.2.2-2+b1 xz-utils=5.2.4-1+b1 zlib1g=1:1.2.11.dfsg-2 --variant=apt --aptopt=Acquire::Check-Valid-Until "false" --aptopt=Acquire::http::Dl-Limit "1000"; --aptopt=Acquire::https::Dl-Limit "1000"; --aptopt=Acquire::Retries "5"; --aptopt=APT::Get::allow-downgrades "true"; --keyring=/usr/share/keyrings/ --essential-hook=chroot "$1" sh -c "apt-get --yes install fakeroot util-linux" --essential-hook=copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ --essential-hook=chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20200520T205149Z/ unstable main' >> /etc/apt/sources.list && apt-get update" --customize-hook=chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash --customize-hook=chroot "$1" env sh -c "apt-get source --only-source -d node-anymatch=3.1.1+~2.2.2-1 && mkdir -p /build/node-anymatch-nv9JUW && dpkg-source --no-check -x /*.dsc /build/node-anymatch-nv9JUW/node-anymatch-3.1.1+-2.2.2 && chown -R builduser:builduser /build/node-anymatch-nv9JUW" --customize-hook=chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/node-anymatch-nv9JUW/node-anymatch-3.1.1+-2.2.2 && env DEB_BUILD_OPTIONS="parallel=4" LANG="C.UTF-8" LC_ALL="C.UTF-8" SOURCE_DATE_EPOCH="1590099153" dpkg-buildpackage -uc -a amd64 --build=all" --customize-hook=sync-out /build/node-anymatch-nv9JUW /tmp/node-anymatch-3.1.1+~2.2.2-1elrd1ilv bullseye /dev/null deb http://snapshot.notset.fr/archive/debian/20200520T205149Z unstable main I: automatically chosen mode: root I: chroot architecture amd64 is equal to the host's architecture I: automatically chosen format: tar I: using /tmp/mmdebstrap.vqJ5bg3ale as tempdir I: running apt-get update... I: downloading packages with apt... I: extracting archives... I: installing essential packages... I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "apt-get --yes install fakeroot util-linux"' exec /tmp/mmdebstrap.vqJ5bg3ale Reading package lists... Building dependency tree... util-linux is already the newest version (2.35.1-5). The following NEW packages will be installed: fakeroot libfakeroot 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 132 kB of archives. After this operation, 393 kB of additional disk space will be used. Get:1 http://snapshot.notset.fr/archive/debian/20200520T205149Z unstable/main amd64 libfakeroot amd64 1.24-1 [45.7 kB] Get:2 http://snapshot.notset.fr/archive/debian/20200520T205149Z unstable/main amd64 fakeroot amd64 1.24-1 [85.9 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 132 kB in 0s (1087 kB/s) Selecting previously unselected package libfakeroot:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 4482 files and directories currently installed.) Preparing to unpack .../libfakeroot_1.24-1_amd64.deb ... Unpacking libfakeroot:amd64 (1.24-1) ... Selecting previously unselected package fakeroot. Preparing to unpack .../fakeroot_1.24-1_amd64.deb ... Unpacking fakeroot (1.24-1) ... Setting up libfakeroot:amd64 (1.24-1) ... Setting up fakeroot (1.24-1) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode Processing triggers for libc-bin (2.30-8) ... I: running special hook: copy-in /usr/share/keyrings/debian-archive-bullseye-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-security-automatic.gpg /usr/share/keyrings/debian-archive-bullseye-stable.gpg /usr/share/keyrings/debian-archive-buster-automatic.gpg /usr/share/keyrings/debian-archive-buster-security-automatic.gpg /usr/share/keyrings/debian-archive-buster-stable.gpg /usr/share/keyrings/debian-archive-keyring.gpg /usr/share/keyrings/debian-archive-removed-keys.gpg /usr/share/keyrings/debian-archive-stretch-automatic.gpg /usr/share/keyrings/debian-archive-stretch-security-automatic.gpg /usr/share/keyrings/debian-archive-stretch-stable.gpg /usr/share/keyrings/debian-ports-archive-keyring-removed.gpg /usr/share/keyrings/debian-ports-archive-keyring.gpg /usr/share/keyrings/debian-keyring.gpg /etc/apt/trusted.gpg.d/ I: running --essential-hook in shell: sh -c 'chroot "$1" sh -c "rm /etc/apt/sources.list && echo 'deb http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210814T212851Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20200520T205149Z/ unstable main' >> /etc/apt/sources.list && apt-get update"' exec /tmp/mmdebstrap.vqJ5bg3ale Get:1 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm InRelease [81.6 kB] Hit:2 http://snapshot.notset.fr/archive/debian/20200520T205149Z unstable InRelease Ign:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Ign:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Ign:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources Ign:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages Get:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main Sources [11.4 MB] Get:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main amd64 Packages [11.1 MB] Fetched 22.6 MB in 19s (1188 kB/s) Reading package lists... I: installing remaining packages inside the chroot... I: running --customize-hook in shell: sh -c 'chroot "$1" useradd --no-create-home -d /nonexistent -p "" builduser -s /bin/bash' exec /tmp/mmdebstrap.vqJ5bg3ale I: running --customize-hook in shell: sh -c 'chroot "$1" env sh -c "apt-get source --only-source -d node-anymatch=3.1.1+~2.2.2-1 && mkdir -p /build/node-anymatch-nv9JUW && dpkg-source --no-check -x /*.dsc /build/node-anymatch-nv9JUW/node-anymatch-3.1.1+-2.2.2 && chown -R builduser:builduser /build/node-anymatch-nv9JUW"' exec /tmp/mmdebstrap.vqJ5bg3ale Reading package lists... NOTICE: 'node-anymatch' packaging is maintained in the 'Git' version control system at: https://salsa.debian.org/js-team/node-anymatch.git Please use: git clone https://salsa.debian.org/js-team/node-anymatch.git to retrieve the latest (possibly unreleased) updates to the package. Need to get 108 kB of source archives. Get:1 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main node-anymatch 3.1.1+~2.2.2-1 (dsc) [2486 B] Get:2 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main node-anymatch 3.1.1+~2.2.2-1 (tar) [96.1 kB] Get:3 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main node-anymatch 3.1.1+~2.2.2-1 (tar) [5621 B] Get:4 http://snapshot.notset.fr/archive/debian/20210814T212851Z bookworm/main node-anymatch 3.1.1+~2.2.2-1 (diff) [3596 B] Fetched 108 kB in 0s (476 kB/s) Download complete and in download only mode W: Download is performed unsandboxed as root as file 'node-anymatch_3.1.1+~2.2.2-1.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) dpkg-source: info: extracting node-anymatch in /build/node-anymatch-nv9JUW/node-anymatch-3.1.1+-2.2.2 dpkg-source: info: unpacking node-anymatch_3.1.1+~2.2.2.orig.tar.gz dpkg-source: info: unpacking node-anymatch_3.1.1+~2.2.2.orig-picomatch.tar.gz dpkg-source: info: unpacking node-anymatch_3.1.1+~2.2.2-1.debian.tar.xz I: running --customize-hook in shell: sh -c 'chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/node-anymatch-nv9JUW/node-anymatch-3.1.1+-2.2.2 && env DEB_BUILD_OPTIONS="parallel=4" LANG="C.UTF-8" LC_ALL="C.UTF-8" SOURCE_DATE_EPOCH="1590099153" dpkg-buildpackage -uc -a amd64 --build=all"' exec /tmp/mmdebstrap.vqJ5bg3ale dpkg-buildpackage: info: source package node-anymatch dpkg-buildpackage: info: source version 3.1.1+~2.2.2-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Xavier Guimard dpkg-source --before-build . debian/rules clean dh clean --with nodejs dh_auto_clean --buildsystem=nodejs rm -rf ./node_modules/.cache rm -rf picomatch/node_modules/.cache dh_clean debian/rules binary-indep dh binary-indep --with nodejs dh_update_autotools_config -i dh_autoreconf -i dh_auto_configure --buildsystem=nodejs -i mkdir node_modules ln -s ../picomatch node_modules/picomatch dh_auto_build --buildsystem=nodejs -i No build command found, searching known files No build command found, searching known files dh_auto_test --buildsystem=nodejs -i /bin/sh -ex debian/tests/pkg-js/test + set -e + RM= + test ! -e picomatch/package.json + echo # picomatch tests # picomatch tests + cd picomatch + mocha picomatch validation ✓ should throw an error when invalid arguments are given multiple patterns ✓ should return true when any of the patterns match (52ms) ✓ should return false when none of the patterns match file extensions ✓ should match files that contain the given extension: dot files ✓ should not match dotfiles when a leading dot is not defined in a path segment ✓ should match dotfiles when options.dot is true matching: ✓ should escape plus signs to match string literals ✓ should match with non-glob patterns ✓ should match file names ✓ should match with copmon glob patterns ✓ should match files with the given extension ✓ should match wildcards ✓ should match globstars ✓ issue #23 ✓ issue #24 ✓ should match slashes ✓ question marks should not match slashes ✓ should not match dotfiles when `dot` or `dotfiles` are not set ✓ should match dotfiles when `dot` or `dotfiles` is set .parse tokens ✓ should return result for pattern that matched by fastpath ✓ should return result for pattern picomatch .scan ✓ should get the "base" and "glob" from a pattern ✓ should handle leading "./" ✓ should detect braces ✓ should detect globstars ✓ should detect extglobs ✓ should detect extglobs and globstars ✓ should handle leading "!" ✓ should handle leading "./" when negated ✓ should recognize leading ./ ✓ should strip glob magic to return base path ✓ should respect escaped characters ✓ should return full non-glob paths ✓ should not return glob when noext is true ✓ should respect nonegate opts ✓ should return parts of the pattern .base (glob2base test patterns) ✓ should get a base name ✓ should get a base name from a nested glob ✓ should get a base name from a flat file ✓ should get a base name from character class pattern ✓ should get a base name from extglob ✓ should get a base name from a path with non-exglob parens technically invalid windows globs ✓ should support simple globs with backslash path separator glob base > ✓ should parse globs ✓ should support file extensions ✓ should support negation pattern ✓ should support extglobs ✓ should support regex character classes ✓ should support qmarks ✓ should support non-glob patterns braces ✓ should recognize brace sets ✓ should recognize brace ranges ✓ should respect brace enclosures with embedded separators ✓ should handle escaped nested braces ✓ should recognize escaped braces ✓ should get a base name from a complex brace glob ✓ should support braces: no path ✓ should support braces in filename ✓ should support braces in dirname from the Bash 4.3 spec/unit tests ✓ should handle "regular globbing" ✓ should match directories ✓ should use escaped characters as literals ✓ should work for quoted characters ✓ should match escaped quotes ✓ Pattern from Larry Wall's Configure that caused bash to blow up: ✓ should support character classes ✓ should support basic wildmatch (brackets) features ✓ should support extended slash-matching features ✓ should match escaped characters ✓ should consolidate extra stars ✓ none of these should output anything bash.spec dotglob ✓ "a/b/.x" should match "**/.x/**" ✓ ".x" should match "**/.x/**" ✓ ".x/" should match "**/.x/**" ✓ ".x/a" should match "**/.x/**" ✓ ".x/a/b" should match "**/.x/**" ✓ ".x/.x" should match "**/.x/**" ✓ "a/.x" should match "**/.x/**" ✓ "a/b/.x/c" should match "**/.x/**" ✓ "a/b/.x/c/d" should match "**/.x/**" ✓ "a/b/.x/c/d/e" should match "**/.x/**" ✓ "a/b/.x/" should match "**/.x/**" ✓ "a/.x/b" should match "**/.x/**" ✓ "a/.x/b/.x/c" should not match "**/.x/**" ✓ ".bashrc" should not match "?bashrc" ✓ should match trailing slashes with stars ✓ ".bar.baz/" should match ".*.*/" ✓ ".bar.baz" should match ".*.*" glob ✓ "a/b/.x" should match "**/.x/**" ✓ ".x" should match "**/.x/**" ✓ ".x/" should match "**/.x/**" ✓ ".x/a" should match "**/.x/**" ✓ ".x/a/b" should match "**/.x/**" ✓ ".x/.x" should match "**/.x/**" ✓ "a/.x" should match "**/.x/**" ✓ "a/b/.x/c" should match "**/.x/**" ✓ "a/b/.x/c/d" should match "**/.x/**" ✓ "a/b/.x/c/d/e" should match "**/.x/**" ✓ "a/b/.x/" should match "**/.x/**" ✓ "a/.x/b" should match "**/.x/**" ✓ "a/.x/b/.x/c" should not match "**/.x/**" ✓ "a/c/b" should match "a/*/b" ✓ "a/.d/b" should not match "a/*/b" ✓ "a/./b" should not match "a/*/b" ✓ "a/../b" should not match "a/*/b" ✓ "ab" should match "ab**" ✓ "abcdef" should match "ab**" ✓ "abef" should match "ab**" ✓ "abcfef" should match "ab**" ✓ "ab" should not match "ab***ef" ✓ "abcdef" should match "ab***ef" ✓ "abef" should match "ab***ef" ✓ "abcfef" should match "ab***ef" ✓ ".bashrc" should not match "?bashrc" ✓ "abbc" should not match "ab?bc" ✓ "abc" should not match "ab?bc" ✓ "a.a" should match "[a-d]*.[a-b]" ✓ "a.b" should match "[a-d]*.[a-b]" ✓ "c.a" should match "[a-d]*.[a-b]" ✓ "a.a.a" should match "[a-d]*.[a-b]" ✓ "a.a.a" should match "[a-d]*.[a-b]*.[a-b]" ✓ "a.a" should match "*.[a-b]" ✓ "a.b" should match "*.[a-b]" ✓ "a.a.a" should match "*.[a-b]" ✓ "c.a" should match "*.[a-b]" ✓ "d.a.d" should not match "*.[a-b]" ✓ "a.bb" should not match "*.[a-b]" ✓ "a.ccc" should not match "*.[a-b]" ✓ "c.ccc" should not match "*.[a-b]" ✓ "a.a" should match "*.[a-b]*" ✓ "a.b" should match "*.[a-b]*" ✓ "a.a.a" should match "*.[a-b]*" ✓ "c.a" should match "*.[a-b]*" ✓ "d.a.d" should match "*.[a-b]*" ✓ "d.a.d" should not match "*.[a-b]*.[a-b]*" ✓ "d.a.d" should match "*.[a-d]*.[a-d]*" ✓ "a.bb" should match "*.[a-b]*" ✓ "a.ccc" should not match "*.[a-b]*" ✓ "c.ccc" should not match "*.[a-b]*" ✓ "a.a" should match "*[a-b].[a-b]*" ✓ "a.b" should match "*[a-b].[a-b]*" ✓ "a.a.a" should match "*[a-b].[a-b]*" ✓ "c.a" should not match "*[a-b].[a-b]*" ✓ "d.a.d" should not match "*[a-b].[a-b]*" ✓ "a.bb" should match "*[a-b].[a-b]*" ✓ "a.ccc" should not match "*[a-b].[a-b]*" ✓ "c.ccc" should not match "*[a-b].[a-b]*" ✓ "abd" should match "[a-y]*[^c]" ✓ "abe" should match "[a-y]*[^c]" ✓ "bb" should match "[a-y]*[^c]" ✓ "bcd" should match "[a-y]*[^c]" ✓ "ca" should match "[a-y]*[^c]" ✓ "cb" should match "[a-y]*[^c]" ✓ "dd" should match "[a-y]*[^c]" ✓ "de" should match "[a-y]*[^c]" ✓ "bdir/" should match "[a-y]*[^c]" ✓ "abd" should match "**/*" globstar ✓ "a.js" should match "**/*.js" ✓ "a/a.js" should match "**/*.js" ✓ "a/a/b.js" should match "**/*.js" ✓ "a/b/z.js" should match "a/b/**/*.js" ✓ "a/b/c/z.js" should match "a/b/**/*.js" ✓ "foo.md" should match "**/*.md" ✓ "foo/bar.md" should match "**/*.md" ✓ "foo/bar" should match "foo/**/bar" ✓ "foo/bar" should match "foo/**bar" ✓ "ab/a/d" should match "**/*" ✓ "ab/b" should match "**/*" ✓ "a/b/c/d/a.js" should match "**/*" ✓ "a/b/c.js" should match "**/*" ✓ "a/b/c.txt" should match "**/*" ✓ "a/b/.js/c.txt" should match "**/*" ✓ "a.js" should match "**/*" ✓ "za.js" should match "**/*" ✓ "ab" should match "**/*" ✓ "a.b" should match "**/*" ✓ "foo/" should match "foo/**/" ✓ "foo/bar" should not match "foo/**/" ✓ "foo/bazbar" should not match "foo/**/" ✓ "foo/barbar" should not match "foo/**/" ✓ "foo/bar/baz/qux" should not match "foo/**/" ✓ "foo/bar/baz/qux/" should match "foo/**/" braces ✓ should not match with brace patterns when disabled ✓ should treat single-set braces as literals ✓ should match literal braces when escaped ✓ should match using brace patterns ✓ should support brace ranges ✓ should support Kleene stars ✓ should not convert braces inside brackets ✓ should support braces containing slashes ✓ should support braces with empty elements ✓ should support braces with slashes and empty elements ✓ should support braces with stars ✓ should support braces in patterns with globstars ✓ should support braces with globstars, slashes and empty elements ✓ should support braces with globstars and empty elements (41ms) ✓ should support Kleene plus ✓ should support braces ✓ should match special chars and expand ranges in parentheses brackets trailing stars ✓ should support stars following brackets ✓ should match slashes defined in brackets ✓ should not match slashes following brackets dotfiles normal ✓ should not match dotfiles by default: leading dot ✓ should match dotfiles when a leading dot is defined in the path: ✓ should use negation patterns on dotfiles: ✓ should match dotfiles when there is a leading dot: ✓ should match dotfiles when there is not a leading dot: ✓ should use negation patterns on dotfiles: options.dot ✓ should match dotfiles when `options.dot` is true: ✓ should match dotfiles when `options.dot` is true ✓ should not match dotfiles when `options.dot` is false ✓ should not match dotfiles when `.dot` is not defined and a dot is not in the glob pattern valid dotfiles ✓ micromatch issue#63 (dots) ✓ should not match dotfiles with single stars by default ✓ should work with dots in the path ✓ should not match dotfiles with globstar by default ✓ should match dotfiles when a leading dot is in the pattern ✓ should not match a dot when the dot is not explicitly defined ✓ should not match leading dots with question marks ✓ should match double dots when defined in pattern ✓ should not match double dots when not defined in pattern ✓ should not match single exclusive dots when not defined in pattern ✓ should match leading dots in root path when glob is prefixed with **/ ✓ should match a dot when the dot is explicitly defined ✓ should match dots defined in brackets invalid (exclusive) dots double dots no options should not match leading double-dots ✓ with single star ✓ with dot + single star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot should not match nested double-dots ✓ with star ✓ with dot + star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot ✓ with globstar + dot + globstar should not match trailing double-dots ✓ with single star ✓ with dot + star ✓ with star + dot ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot options = { dot: true } should not match leading double-dots ✓ with single star ✓ with dot + single star (46ms) ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot should not match nested double-dots ✓ with star ✓ with dot + star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot ✓ with globstar + dot + globstar should not match trailing double-dots ✓ with single star ✓ with dot + star ✓ with star + dot ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot options = { strictSlashes: true } should not match leading double-dots ✓ with single star ✓ with dot + single star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot should not match nested double-dots ✓ with star ✓ with dot + star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot ✓ with globstar + dot + globstar should not match trailing double-dots ✓ with single star ✓ with dot + star ✓ with star + dot ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot options = { dot: true, strictSlashes: true } should not match leading double-dots ✓ with single star ✓ with dot + single star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot should not match nested double-dots ✓ with star ✓ with dot + star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot ✓ with globstar + dot + globstar should not match trailing double-dots ✓ with single star ✓ with dot + star ✓ with star + dot (44ms) ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot single dots no options should not match leading single-dots ✓ with single star ✓ with dot + single star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot should not match nested single-dots ✓ with star ✓ with dot + star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot ✓ with globstar + dot + globstar should not match trailing single-dots ✓ with single star ✓ with dot + star ✓ with star + dot ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot options = { dot: true } should not match leading single-dots ✓ with single star ✓ with dot + single star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot should not match nested single-dots ✓ with star ✓ with dot + star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot ✓ with globstar + dot + globstar should not match trailing single-dots ✓ with single star ✓ with dot + star ✓ with star + dot ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot options = { strictSlashes: true } should not match leading single-dots ✓ with single star ✓ with dot + single star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot should not match nested single-dots ✓ with star ✓ with dot + star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot ✓ with globstar + dot + globstar should not match trailing single-dots ✓ with single star ✓ with dot + star ✓ with star + dot ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot options = { dot: true, strictSlashes: true } should not match leading single-dots ✓ with single star ✓ with dot + single star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot should not match nested single-dots ✓ with star ✓ with dot + star ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot ✓ with globstar + dot + globstar should not match trailing single-dots ✓ with single star ✓ with dot + star ✓ with star + dot ✓ with globstar ✓ with dot + globstar ✓ with globstar + dot + globstar ✓ with globstar + dot extglobs (bash) ✓ should not match empty string with "*(0|1|3|5|7|9)" ✓ "*(a|b[)" should not match "*(a|b\[)" ✓ "*(a|b[)" should not match "\*\(a|b\[\)" ✓ "***" should match "\*\*\*" ✓ "-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1" should not match "-*-*-*-*-*-*-12-*-*-*-m-*-*-*" ✓ "-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1" should match "-*-*-*-*-*-*-12-*-*-*-m-*-*-*" ✓ "-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1" should not match "-*-*-*-*-*-*-12-*-*-*-m-*-*-*" ✓ "/dev/udp/129.22.8.102/45" should match "/dev\/@(tcp|udp)\/*\/*" ✓ "/x/y/z" should match "/x/y/z" ✓ "0377" should match "+([0-7])" ✓ "07" should match "+([0-7])" ✓ "09" should not match "+([0-7])" ✓ "1" should match "0|[1-9]*([0-9])" ✓ "12" should match "0|[1-9]*([0-9])" ✓ "123abc" should not match "(a+|b)*" ✓ "123abc" should not match "(a+|b)+" ✓ "123abc" should match "*?(a)bc" ✓ "123abc" should not match "a(b*(foo|bar))d" ✓ "123abc" should not match "ab*(e|f)" ✓ "123abc" should not match "ab**" ✓ "123abc" should not match "ab**(e|f)" ✓ "123abc" should not match "ab**(e|f)g" ✓ "123abc" should not match "ab***ef" ✓ "123abc" should not match "ab*+(e|f)" ✓ "123abc" should not match "ab*d+(e|f)" ✓ "123abc" should not match "ab?*(e|f)" ✓ "12abc" should not match "0|[1-9]*([0-9])" ✓ "137577991" should match "*(0|1|3|5|7|9)" ✓ "2468" should not match "*(0|1|3|5|7|9)" ✓ "?a?b" should match "\??\?b" ✓ "\a\b\c" should not match "abc" ✓ "a" should match "!(*.a|*.b|*.c)" ✓ "a" should not match "!(a)" ✓ "a" should not match "!(a)*" ✓ "a" should match "(a)" ✓ "a" should not match "(b)" ✓ "a" should match "*(a)" ✓ "a" should match "+(a)" ✓ "a" should match "?" ✓ "a" should match "?(a|b)" ✓ "a" should not match "??" ✓ "a" should match "a!(b)*" ✓ "a" should match "a?(a|b)" ✓ "a" should match "a?(x)" ✓ "a" should not match "a??b" ✓ "a" should not match "b?(a|b)" ✓ "a((((b" should match "a(*b" ✓ "a((((b" should not match "a(b" ✓ "a((((b" should not match "a\(b" ✓ "a((b" should match "a(*b" ✓ "a((b" should not match "a(b" ✓ "a((b" should not match "a\(b" ✓ "a(b" should match "a(*b" ✓ "a(b" should match "a(b" ✓ "a\(b" should match "a\(b" ✓ "a(b" should match "a\(b" ✓ "a." should match "!(*.a|*.b|*.c)" ✓ "a." should match "*!(.a|.b|.c)" ✓ "a." should match "*.!(a)" ✓ "a." should match "*.!(a|b|c)" ✓ "a." should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "a." should not match "*.+(b|d)" ✓ "a.a" should not match "!(*.[a-b]*)" ✓ "a.a" should not match "!(*.a|*.b|*.c)" ✓ "a.a" should not match "!(*[a-b].[a-b]*)" ✓ "a.a" should not match "!*.(a|b)" ✓ "a.a" should not match "!*.(a|b)*" ✓ "a.a" should match "(a|d).(a|b)*" ✓ "a.a" should match "(b|a).(a)" ✓ "a.a" should match "*!(.a|.b|.c)" ✓ "a.a" should not match "*.!(a)" ✓ "a.a" should not match "*.!(a|b|c)" ✓ "a.a" should match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "a.a" should not match "*.+(b|d)" ✓ "a.a" should match "@(b|a).@(a)" ✓ "a.a.a" should not match "!(*.[a-b]*)" ✓ "a.a.a" should not match "!(*[a-b].[a-b]*)" ✓ "a.a.a" should not match "!*.(a|b)" ✓ "a.a.a" should not match "!*.(a|b)*" ✓ "a.a.a" should match "*.!(a)" ✓ "a.a.a" should not match "*.+(b|d)" ✓ "a.aa.a" should not match "(b|a).(a)" ✓ "a.aa.a" should not match "@(b|a).@(a)" ✓ "a.abcd" should match "!(*.a|*.b|*.c)" ✓ "a.abcd" should not match "!(*.a|*.b|*.c)*" ✓ "a.abcd" should match "*!(*.a|*.b|*.c)*" ✓ "a.abcd" should match "*!(.a|.b|.c)" ✓ "a.abcd" should match "*.!(a|b|c)" ✓ "a.abcd" should not match "*.!(a|b|c)*" ✓ "a.abcd" should match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "a.b" should not match "!(*.*)" ✓ "a.b" should not match "!(*.[a-b]*)" ✓ "a.b" should not match "!(*.a|*.b|*.c)" ✓ "a.b" should not match "!(*[a-b].[a-b]*)" ✓ "a.b" should not match "!*.(a|b)" ✓ "a.b" should not match "!*.(a|b)*" ✓ "a.b" should match "(a|d).(a|b)*" ✓ "a.b" should match "*!(.a|.b|.c)" ✓ "a.b" should match "*.!(a)" ✓ "a.b" should not match "*.!(a|b|c)" ✓ "a.b" should match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "a.b" should match "*.+(b|d)" ✓ "a.bb" should not match "!(*.[a-b]*)" ✓ "a.bb" should not match "!(*[a-b].[a-b]*)" ✓ "a.bb" should match "!*.(a|b)" ✓ "a.bb" should not match "!*.(a|b)*" ✓ "a.bb" should not match "!*.*(a|b)" ✓ "a.bb" should match "(a|d).(a|b)*" ✓ "a.bb" should not match "(b|a).(a)" ✓ "a.bb" should match "*.+(b|d)" ✓ "a.bb" should not match "@(b|a).@(a)" ✓ "a.c" should not match "!(*.a|*.b|*.c)" ✓ "a.c" should match "*!(.a|.b|.c)" ✓ "a.c" should not match "*.!(a|b|c)" ✓ "a.c" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "a.c.d" should match "!(*.a|*.b|*.c)" ✓ "a.c.d" should match "*!(.a|.b|.c)" ✓ "a.c.d" should match "*.!(a|b|c)" ✓ "a.c.d" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "a.ccc" should match "!(*.[a-b]*)" ✓ "a.ccc" should match "!(*[a-b].[a-b]*)" ✓ "a.ccc" should match "!*.(a|b)" ✓ "a.ccc" should match "!*.(a|b)*" ✓ "a.ccc" should not match "*.+(b|d)" ✓ "a.js" should not match "!(*.js)" ✓ "a.js" should match "*!(.js)" ✓ "a.js" should not match "*.!(js)" ✓ "a.js" should not match "a.!(js)" ✓ "a.js" should not match "a.!(js)*" ✓ "a.js.js" should not match "!(*.js)" ✓ "a.js.js" should match "*!(.js)" ✓ "a.js.js" should match "*.!(js)" ✓ "a.js.js" should match "*.*(js).js" ✓ "a.md" should match "!(*.js)" ✓ "a.md" should match "*!(.js)" ✓ "a.md" should match "*.!(js)" ✓ "a.md" should match "a.!(js)" ✓ "a.md" should match "a.!(js)*" ✓ "a.md.js" should not match "*.*(js).js" ✓ "a.txt" should match "a.!(js)" ✓ "a.txt" should match "a.!(js)*" ✓ "a/!(z)" should match "a/!(z)" ✓ "a/b" should match "a/!(z)" ✓ "a/b/c.txt" should not match "*/b/!(*).txt" ✓ "a/b/c.txt" should not match "*/b/!(c).txt" ✓ "a/b/c.txt" should match "*/b/!(cc).txt" ✓ "a/b/cc.txt" should not match "*/b/!(*).txt" ✓ "a/b/cc.txt" should not match "*/b/!(c).txt" ✓ "a/b/cc.txt" should not match "*/b/!(cc).txt" ✓ "a/dir/foo.txt" should match "*/dir/**/!(bar).txt" ✓ "a/z" should not match "a/!(z)" ✓ "a\(b" should not match "a(*b" ✓ "a\(b" should not match "a(b" ✓ "a\z" should match "a\z" ✓ "a\z" should match "a\z" ✓ "a\b" should match "a/b" ✓ "a\z" should match "a\z" ✓ "a\z" should not match "a\z" ✓ "aa" should not match "!(a!(b))" ✓ "aa" should match "!(a)" ✓ "aa" should not match "!(a)*" ✓ "aa" should not match "?" ✓ "aa" should not match "@(a)b" ✓ "aa" should match "a!(b)*" ✓ "aa" should not match "a??b" ✓ "aa.aa" should not match "(b|a).(a)" ✓ "aa.aa" should not match "@(b|a).@(a)" ✓ "aaa" should not match "!(a)*" ✓ "aaa" should match "a!(b)*" ✓ "aaaaaaabababab" should match "*ab" ✓ "aaac" should match "*(@(a))a@(c)" ✓ "aaaz" should match "[a*(]*z" ✓ "aab" should not match "!(a)*" ✓ "aab" should not match "?" ✓ "aab" should not match "??" ✓ "aab" should not match "@(c)b" ✓ "aab" should match "a!(b)*" ✓ "aab" should not match "a??b" ✓ "aac" should match "*(@(a))a@(c)" ✓ "aac" should not match "*(@(a))b@(c)" ✓ "aax" should not match "a!(a*|b)" ✓ "aax" should match "a!(x*|b)" ✓ "aax" should match "a?(a*|b)" ✓ "aaz" should match "[a*(]*z" ✓ "ab" should match "!(*.*)" ✓ "ab" should match "!(a!(b))" ✓ "ab" should not match "!(a)*" ✓ "ab" should match "@(a+|b)*" ✓ "ab" should match "(a+|b)+" ✓ "ab" should not match "*?(a)bc" ✓ "ab" should not match "a!(*(b|B))" ✓ "ab" should not match "a!(@(b|B))" ✓ "aB" should not match "a!(@(b|B))" ✓ "ab" should not match "a!(b)*" ✓ "ab" should not match "a(*b" ✓ "ab" should not match "a(b" ✓ "ab" should not match "a(b*(foo|bar))d" ✓ "ab" should not match "a/b" ✓ "ab" should not match "a\(b" ✓ "ab" should match "ab*(e|f)" ✓ "ab" should match "ab**" ✓ "ab" should match "ab**(e|f)" ✓ "ab" should not match "ab**(e|f)g" ✓ "ab" should not match "ab***ef" ✓ "ab" should not match "ab*+(e|f)" ✓ "ab" should not match "ab*d+(e|f)" ✓ "ab" should not match "ab?*(e|f)" ✓ "ab/cXd/efXg/hi" should match "**/*X*/**/*i" ✓ "ab/cXd/efXg/hi" should match "*/*X*/*/*i" ✓ "ab/cXd/efXg/hi" should match "*X*i" ✓ "ab/cXd/efXg/hi" should match "*Xg*i" ✓ "ab]" should match "a!(@(b|B))" ✓ "abab" should match "(a+|b)*" ✓ "abab" should match "(a+|b)+" ✓ "abab" should not match "*?(a)bc" ✓ "abab" should not match "a(b*(foo|bar))d" ✓ "abab" should not match "ab*(e|f)" ✓ "abab" should match "ab**" ✓ "abab" should match "ab**(e|f)" ✓ "abab" should not match "ab**(e|f)g" ✓ "abab" should not match "ab***ef" ✓ "abab" should not match "ab*+(e|f)" ✓ "abab" should not match "ab*d+(e|f)" ✓ "abab" should not match "ab?*(e|f)" ✓ "abb" should match "!(*.*)" ✓ "abb" should not match "!(a)*" ✓ "abb" should not match "a!(b)*" ✓ "abbcd" should match "@(ab|a*(b))*(c)d" ✓ "abc" should not match "\a\b\c" ✓ "aBc" should match "a!(@(b|B))" ✓ "abcd" should match "?@(a|b)*@(c)d" ✓ "abcd" should match "@(ab|a*@(b))*(c)d" ✓ "abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt" should match "**/*a*b*g*n*t" ✓ "abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz" should not match "**/*a*b*g*n*t" ✓ "abcdef" should match "(a+|b)*" ✓ "abcdef" should not match "(a+|b)+" ✓ "abcdef" should not match "*?(a)bc" ✓ "abcdef" should not match "a(b*(foo|bar))d" ✓ "abcdef" should not match "ab*(e|f)" ✓ "abcdef" should match "ab**" ✓ "abcdef" should match "ab**(e|f)" ✓ "abcdef" should not match "ab**(e|f)g" ✓ "abcdef" should match "ab***ef" ✓ "abcdef" should match "ab*+(e|f)" ✓ "abcdef" should match "ab*d+(e|f)" ✓ "abcdef" should not match "ab?*(e|f)" ✓ "abcfef" should match "(a+|b)*" ✓ "abcfef" should not match "(a+|b)+" ✓ "abcfef" should not match "*?(a)bc" ✓ "abcfef" should not match "a(b*(foo|bar))d" ✓ "abcfef" should not match "ab*(e|f)" ✓ "abcfef" should match "ab**" ✓ "abcfef" should match "ab**(e|f)" ✓ "abcfef" should not match "ab**(e|f)g" ✓ "abcfef" should match "ab***ef" ✓ "abcfef" should match "ab*+(e|f)" ✓ "abcfef" should not match "ab*d+(e|f)" ✓ "abcfef" should match "ab?*(e|f)" ✓ "abcfefg" should match "(a+|b)*" ✓ "abcfefg" should not match "(a+|b)+" ✓ "abcfefg" should not match "*?(a)bc" ✓ "abcfefg" should not match "a(b*(foo|bar))d" ✓ "abcfefg" should not match "ab*(e|f)" ✓ "abcfefg" should match "ab**" ✓ "abcfefg" should match "ab**(e|f)" ✓ "abcfefg" should match "ab**(e|f)g" ✓ "abcfefg" should not match "ab***ef" ✓ "abcfefg" should not match "ab*+(e|f)" ✓ "abcfefg" should not match "ab*d+(e|f)" ✓ "abcfefg" should not match "ab?*(e|f)" ✓ "abcx" should match "!([[*])*" ✓ "abcx" should match "+(a|b\[)*" ✓ "abcx" should not match "[a*(]*z" ✓ "abcXdefXghi" should match "*X*i" ✓ "abcz" should match "!([[*])*" ✓ "abcz" should match "+(a|b\[)*" ✓ "abcz" should match "[a*(]*z" ✓ "abd" should match "(a+|b)*" ✓ "abd" should not match "(a+|b)+" ✓ "abd" should not match "*?(a)bc" ✓ "abd" should match "a!(*(b|B))" ✓ "abd" should match "a!(@(b|B))" ✓ "abd" should not match "a!(@(b|B))d" ✓ "abd" should match "a(b*(foo|bar))d" ✓ "abd" should match "a+(b|c)d" ✓ "abd" should match "a[b*(foo|bar)]d" ✓ "abd" should not match "ab*(e|f)" ✓ "abd" should match "ab**" ✓ "abd" should match "ab**(e|f)" ✓ "abd" should not match "ab**(e|f)g" ✓ "abd" should not match "ab***ef" ✓ "abd" should not match "ab*+(e|f)" ✓ "abd" should not match "ab*d+(e|f)" ✓ "abd" should match "ab?*(e|f)" ✓ "abef" should match "(a+|b)*" ✓ "abef" should not match "(a+|b)+" ✓ "abef" should not match "*(a+|b)" ✓ "abef" should not match "*?(a)bc" ✓ "abef" should not match "a(b*(foo|bar))d" ✓ "abef" should match "ab*(e|f)" ✓ "abef" should match "ab**" ✓ "abef" should match "ab**(e|f)" ✓ "abef" should not match "ab**(e|f)g" ✓ "abef" should match "ab***ef" ✓ "abef" should match "ab*+(e|f)" ✓ "abef" should not match "ab*d+(e|f)" ✓ "abef" should match "ab?*(e|f)" ✓ "abz" should not match "a!(*)" ✓ "abz" should match "a!(z)" ✓ "abz" should match "a*!(z)" ✓ "abz" should not match "a*(z)" ✓ "abz" should match "a**(z)" ✓ "abz" should match "a*@(z)" ✓ "abz" should not match "a+(z)" ✓ "abz" should not match "a?(z)" ✓ "abz" should not match "a@(z)" ✓ "ac" should not match "!(a)*" ✓ "ac" should match "*(@(a))a@(c)" ✓ "ac" should match "a!(*(b|B))" ✓ "ac" should match "a!(@(b|B))" ✓ "ac" should match "a!(b)*" ✓ "accdef" should match "(a+|b)*" ✓ "accdef" should not match "(a+|b)+" ✓ "accdef" should not match "*?(a)bc" ✓ "accdef" should not match "a(b*(foo|bar))d" ✓ "accdef" should not match "ab*(e|f)" ✓ "accdef" should not match "ab**" ✓ "accdef" should not match "ab**(e|f)" ✓ "accdef" should not match "ab**(e|f)g" ✓ "accdef" should not match "ab***ef" ✓ "accdef" should not match "ab*+(e|f)" ✓ "accdef" should not match "ab*d+(e|f)" ✓ "accdef" should not match "ab?*(e|f)" ✓ "acd" should match "(a+|b)*" ✓ "acd" should not match "(a+|b)+" ✓ "acd" should not match "*?(a)bc" ✓ "acd" should match "@(ab|a*(b))*(c)d" ✓ "acd" should match "a!(*(b|B))" ✓ "acd" should match "a!(@(b|B))" ✓ "acd" should match "a!(@(b|B))d" ✓ "acd" should not match "a(b*(foo|bar))d" ✓ "acd" should match "a+(b|c)d" ✓ "acd" should not match "a[b*(foo|bar)]d" ✓ "acd" should not match "ab*(e|f)" ✓ "acd" should not match "ab**" ✓ "acd" should not match "ab**(e|f)" ✓ "acd" should not match "ab**(e|f)g" ✓ "acd" should not match "ab***ef" ✓ "acd" should not match "ab*+(e|f)" ✓ "acd" should not match "ab*d+(e|f)" ✓ "acd" should not match "ab?*(e|f)" ✓ "ax" should match "?(a*|b)" ✓ "ax" should not match "a?(b*)" ✓ "axz" should not match "a+(z)" ✓ "az" should not match "a!(*)" ✓ "az" should not match "a!(z)" ✓ "az" should match "a*!(z)" ✓ "az" should match "a*(z)" ✓ "az" should match "a**(z)" ✓ "az" should match "a*@(z)" ✓ "az" should match "a+(z)" ✓ "az" should match "a?(z)" ✓ "az" should match "a@(z)" ✓ "az" should not match "a\z" ✓ "az" should not match "a\z" ✓ "b" should match "!(a)*" ✓ "b" should match "(a+|b)*" ✓ "b" should not match "a!(b)*" ✓ "b.a" should match "(b|a).(a)" ✓ "b.a" should match "@(b|a).@(a)" ✓ "b/a" should not match "!(b/a)" ✓ "b/b" should match "!(b/a)" ✓ "b/c" should match "!(b/a)" ✓ "b/c" should not match "b/!(c)" ✓ "b/c" should match "b/!(cc)" ✓ "b/c.txt" should not match "b/!(c).txt" ✓ "b/c.txt" should match "b/!(cc).txt" ✓ "b/cc" should match "b/!(c)" ✓ "b/cc" should not match "b/!(cc)" ✓ "b/cc.txt" should not match "b/!(c).txt" ✓ "b/cc.txt" should not match "b/!(cc).txt" ✓ "b/ccc" should match "b/!(c)" ✓ "ba" should match "!(a!(b))" ✓ "ba" should match "b?(a|b)" ✓ "baaac" should not match "*(@(a))a@(c)" ✓ "bar" should match "!(foo)" ✓ "bar" should match "!(foo)*" ✓ "bar" should match "!(foo)b*" ✓ "bar" should match "*(!(foo))" ✓ "baz" should match "!(foo)*" ✓ "baz" should match "!(foo)b*" ✓ "baz" should match "*(!(foo))" ✓ "bb" should match "!(a!(b))" ✓ "bb" should match "!(a)*" ✓ "bb" should not match "a!(b)*" ✓ "bb" should not match "a?(a|b)" ✓ "bbc" should match "!([[*])*" ✓ "bbc" should not match "+(a|b\[)*" ✓ "bbc" should not match "[a*(]*z" ✓ "bz" should not match "a+(z)" ✓ "c" should not match "*(@(a))a@(c)" ✓ "c.a" should not match "!(*.[a-b]*)" ✓ "c.a" should match "!(*[a-b].[a-b]*)" ✓ "c.a" should not match "!*.(a|b)" ✓ "c.a" should not match "!*.(a|b)*" ✓ "c.a" should not match "(b|a).(a)" ✓ "c.a" should not match "*.!(a)" ✓ "c.a" should not match "*.+(b|d)" ✓ "c.a" should not match "@(b|a).@(a)" ✓ "c.c" should not match "!(*.a|*.b|*.c)" ✓ "c.c" should match "*!(.a|.b|.c)" ✓ "c.c" should not match "*.!(a|b|c)" ✓ "c.c" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "c.ccc" should match "!(*.[a-b]*)" ✓ "c.ccc" should match "!(*[a-b].[a-b]*)" ✓ "c.js" should not match "!(*.js)" ✓ "c.js" should match "*!(.js)" ✓ "c.js" should not match "*.!(js)" ✓ "c/a/v" should match "c/!(z)/v" ✓ "c/a/v" should not match "c/*(z)/v" ✓ "c/a/v" should not match "c/+(z)/v" ✓ "c/a/v" should not match "c/@(z)/v" ✓ "c/z/v" should not match "*(z)" ✓ "c/z/v" should not match "+(z)" ✓ "c/z/v" should not match "?(z)" ✓ "c/z/v" should not match "c/!(z)/v" ✓ "c/z/v" should match "c/*(z)/v" ✓ "c/z/v" should match "c/+(z)/v" ✓ "c/z/v" should match "c/@(z)/v" ✓ "c/z/v" should match "c/z/v" ✓ "cc.a" should not match "(b|a).(a)" ✓ "cc.a" should not match "@(b|a).@(a)" ✓ "ccc" should match "!(a)*" ✓ "ccc" should not match "a!(b)*" ✓ "cow" should match "!(*.*)" ✓ "cow" should not match "!(*.*)." ✓ "cow" should not match ".!(*.*)" ✓ "cz" should not match "a!(*)" ✓ "cz" should not match "a!(z)" ✓ "cz" should not match "a*!(z)" ✓ "cz" should not match "a*(z)" ✓ "cz" should not match "a**(z)" ✓ "cz" should not match "a*@(z)" ✓ "cz" should not match "a+(z)" ✓ "cz" should not match "a?(z)" ✓ "cz" should not match "a@(z)" ✓ "d.a.d" should not match "!(*.[a-b]*)" ✓ "d.a.d" should match "!(*[a-b].[a-b]*)" ✓ "d.a.d" should not match "!*.(a|b)*" ✓ "d.a.d" should match "!*.*(a|b)" ✓ "d.a.d" should not match "!*.{a,b}*" ✓ "d.a.d" should match "*.!(a)" ✓ "d.a.d" should match "*.+(b|d)" ✓ "d.d" should match "!(*.a|*.b|*.c)" ✓ "d.d" should match "*!(.a|.b|.c)" ✓ "d.d" should match "*.!(a|b|c)" ✓ "d.d" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "d.js.d" should match "!(*.js)" ✓ "d.js.d" should match "*!(.js)" ✓ "d.js.d" should match "*.!(js)" ✓ "dd.aa.d" should not match "(b|a).(a)" ✓ "dd.aa.d" should not match "@(b|a).@(a)" ✓ "def" should not match "()ef" ✓ "e.e" should match "!(*.a|*.b|*.c)" ✓ "e.e" should match "*!(.a|.b|.c)" ✓ "e.e" should match "*.!(a|b|c)" ✓ "e.e" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "ef" should match "()ef" ✓ "effgz" should match "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" ✓ "efgz" should match "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" ✓ "egz" should match "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" ✓ "egz" should not match "@(b+(c)d|e+(f)g?|?(h)i@(j|k))" ✓ "egzefffgzbcdij" should match "*(b+(c)d|e*(f)g?|?(h)i@(j|k))" ✓ "f" should not match "!(f!(o))" ✓ "f" should match "!(f(o))" ✓ "f" should not match "!(f)" ✓ "f" should not match "*(!(f))" ✓ "f" should not match "+(!(f))" ✓ "f.a" should not match "!(*.a|*.b|*.c)" ✓ "f.a" should match "*!(.a|.b|.c)" ✓ "f.a" should not match "*.!(a|b|c)" ✓ "f.f" should match "!(*.a|*.b|*.c)" ✓ "f.f" should match "*!(.a|.b|.c)" ✓ "f.f" should match "*.!(a|b|c)" ✓ "f.f" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "fa" should not match "!(f!(o))" ✓ "fa" should match "!(f(o))" ✓ "fb" should not match "!(f!(o))" ✓ "fb" should match "!(f(o))" ✓ "fff" should match "!(f)" ✓ "fff" should match "*(!(f))" ✓ "fff" should match "+(!(f))" ✓ "fffooofoooooffoofffooofff" should match "*(*(f)*(o))" ✓ "ffo" should match "*(f*(o))" ✓ "file.C" should not match "*.c?(c)" ✓ "file.c" should match "*.c?(c)" ✓ "file.cc" should match "*.c?(c)" ✓ "file.ccc" should not match "*.c?(c)" ✓ "fo" should match "!(f!(o))" ✓ "fo" should not match "!(f(o))" ✓ "fofo" should match "*(f*(o))" ✓ "fofoofoofofoo" should match "*(fo|foo)" ✓ "fofoofoofofoo" should match "*(fo|foo)" ✓ "foo" should match "!(!(foo))" ✓ "foo" should match "!(f)" ✓ "foo" should not match "!(foo)" ✓ "foo" should not match "!(foo)*" ✓ "foo" should not match "!(foo)*" ✓ "foo" should not match "!(foo)+" ✓ "foo" should not match "!(foo)b*" ✓ "foo" should match "!(x)" ✓ "foo" should match "!(x)*" ✓ "foo" should match "*" ✓ "foo" should match "*(!(f))" ✓ "foo" should not match "*(!(foo))" ✓ "foo" should not match "*(@(a))a@(c)" ✓ "foo" should match "*(@(foo))" ✓ "foo" should not match "*(a|b\[)" ✓ "foo" should match "*(a|b\[)|f*" ✓ "foo" should match "@(*(a|b\[)|f*)" ✓ "foo" should not match "*/*/*" ✓ "foo" should not match "*f" ✓ "foo" should match "*foo*" ✓ "foo" should match "+(!(f))" ✓ "foo" should not match "??" ✓ "foo" should match "???" ✓ "foo" should not match "bar" ✓ "foo" should match "f*" ✓ "foo" should not match "fo" ✓ "foo" should match "foo" ✓ "foo" should match "{*(a|b\[),f*}" ✓ "foo*" should match "foo\*" ✓ "foo*bar" should match "foo\*bar" ✓ "foo.js" should not match "!(foo).js" ✓ "foo.js.js" should match "*.!(js)" ✓ "foo.js.js" should not match "*.!(js)*" ✓ "foo.js.js" should not match "*.!(js)*.!(js)" ✓ "foo.js.js" should not match "*.!(js)+" ✓ "foo.txt" should match "**/!(bar).txt" ✓ "foo/bar" should not match "*/*/*" ✓ "foo/bar" should match "foo/!(foo)" ✓ "foo/bar" should match "foo/*" ✓ "foo/bar" should match "foo/bar" ✓ "foo/bar" should not match "foo?bar" ✓ "foo/bar" should match "foo[/]bar" ✓ "foo/bar/baz.jsx" should match "foo/bar/**/*.+(js|jsx)" ✓ "foo/bar/baz.jsx" should match "foo/bar/*.+(js|jsx)" ✓ "foo/bb/aa/rr" should match "**/**/**" ✓ "foo/bb/aa/rr" should match "*/*/*" ✓ "foo/bba/arr" should match "*/*/*" ✓ "foo/bba/arr" should match "foo*" ✓ "foo/bba/arr" should match "foo**" ✓ "foo/bba/arr" should match "foo/*" ✓ "foo/bba/arr" should match "foo/**" ✓ "foo/bba/arr" should match "foo/**arr" ✓ "foo/bba/arr" should not match "foo/**z" ✓ "foo/bba/arr" should match "foo/*arr" ✓ "foo/bba/arr" should not match "foo/*z" ✓ "foob" should not match "!(foo)b*" ✓ "foob" should not match "(foo)bb" ✓ "foobar" should match "!(foo)" ✓ "foobar" should not match "!(foo)*" ✓ "foobar" should not match "!(foo)*" ✓ "foobar" should not match "!(foo)b*" ✓ "foobar" should match "*(!(foo))" ✓ "foobar" should match "*ob*a*r*" ✓ "foobar" should match "foo\*bar" ✓ "foobb" should not match "!(foo)b*" ✓ "foobb" should match "(foo)bb" ✓ "(foo)bb" should match "\(foo\)bb" ✓ "foofoofo" should match "@(foo|f|fo)*(f|of+(o))" ✓ "foofoofo" should match "@(foo|f|fo)*(f|of+(o))" ✓ "fooofoofofooo" should match "*(f*(o))" ✓ "foooofo" should match "*(f*(o))" ✓ "foooofof" should match "*(f*(o))" ✓ "foooofof" should not match "*(f+(o))" ✓ "foooofofx" should not match "*(f*(o))" ✓ "foooxfooxfoxfooox" should match "*(f*(o)x)" ✓ "foooxfooxfxfooox" should match "*(f*(o)x)" ✓ "foooxfooxofoxfooox" should not match "*(f*(o)x)" ✓ "foot" should match "@(!(z*)|*x)" ✓ "foox" should match "@(!(z*)|*x)" ✓ "fz" should not match "*(z)" ✓ "fz" should not match "+(z)" ✓ "fz" should not match "?(z)" ✓ "moo.cow" should not match "!(moo).!(cow)" ✓ "moo.cow" should not match "!(*).!(*)" ✓ "moo.cow" should not match "!(*.*).!(*.*)" ✓ "mad.moo.cow" should not match "!(*.*).!(*.*)" ✓ "mad.moo.cow" should not match ".!(*.*)" ✓ "Makefile" should match "!(*.c|*.h|Makefile.in|config*|README)" ✓ "Makefile.in" should not match "!(*.c|*.h|Makefile.in|config*|README)" ✓ "moo" should match "!(*.*)" ✓ "moo" should not match "!(*.*)." ✓ "moo" should not match ".!(*.*)" ✓ "moo.cow" should not match "!(*.*)" ✓ "moo.cow" should not match "!(*.*)." ✓ "moo.cow" should not match ".!(*.*)" ✓ "mucca.pazza" should not match "mu!(*(c))?.pa!(*(z))?" ✓ "ofoofo" should match "*(of+(o))" ✓ "ofoofo" should match "*(of+(o)|f)" ✓ "ofooofoofofooo" should not match "*(f*(o))" ✓ "ofoooxoofxo" should match "*(*(of*(o)x)o)" ✓ "ofoooxoofxoofoooxoofxo" should match "*(*(of*(o)x)o)" (41ms) ✓ "ofoooxoofxoofoooxoofxofo" should not match "*(*(of*(o)x)o)" ✓ "ofoooxoofxoofoooxoofxoo" should match "*(*(of*(o)x)o)" ✓ "ofoooxoofxoofoooxoofxooofxofxo" should match "*(*(of*(o)x)o)" ✓ "ofxoofxo" should match "*(*(of*(o)x)o)" ✓ "oofooofo" should match "*(of|oof+(o))" ✓ "ooo" should match "!(f)" ✓ "ooo" should match "*(!(f))" ✓ "ooo" should match "+(!(f))" ✓ "oxfoxfox" should not match "*(oxf+(ox))" ✓ "oxfoxoxfox" should match "*(oxf+(ox))" ✓ "para" should match "para*([0-9])" ✓ "para" should not match "para+([0-9])" ✓ "para.38" should match "para!(*.[00-09])" ✓ "para.graph" should match "para!(*.[0-9])" ✓ "para13829383746592" should match "para*([0-9])" ✓ "para381" should not match "para?([345]|99)1" ✓ "para39" should match "para!(*.[0-9])" ✓ "para987346523" should match "para+([0-9])" ✓ "para991" should match "para?([345]|99)1" ✓ "paragraph" should match "para!(*.[0-9])" ✓ "paragraph" should not match "para*([0-9])" ✓ "paragraph" should match "para@(chute|graph)" ✓ "paramour" should not match "para@(chute|graph)" ✓ "parse.y" should match "!(*.c|*.h|Makefile.in|config*|README)" ✓ "shell.c" should not match "!(*.c|*.h|Makefile.in|config*|README)" ✓ "VMS.FILE;" should not match "*\;[1-9]*([0-9])" ✓ "VMS.FILE;0" should not match "*\;[1-9]*([0-9])" ✓ "VMS.FILE;9" should match "*\;[1-9]*([0-9])" ✓ "VMS.FILE;1" should match "*\;[1-9]*([0-9])" ✓ "VMS.FILE;1" should match "*;[1-9]*([0-9])" ✓ "VMS.FILE;139" should match "*\;[1-9]*([0-9])" ✓ "VMS.FILE;1N" should not match "*\;[1-9]*([0-9])" ✓ "xfoooofof" should not match "*(f*(o))" ✓ "XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1" should match "XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*" ✓ "XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1" should not match "XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*" ✓ "z" should match "*(z)" ✓ "z" should match "+(z)" ✓ "z" should match "?(z)" ✓ "zf" should not match "*(z)" ✓ "zf" should not match "+(z)" ✓ "zf" should not match "?(z)" ✓ "zoot" should not match "@(!(z*)|*x)" ✓ "zoox" should match "@(!(z*)|*x)" ✓ "zz" should not match "(a+|b)*" extglobs (minimatch) ✓ should not match empty string with "*(0|1|3|5|7|9)" ✓ "*(a|b[)" should not match "*(a|b\[)" ✓ "*(a|b[)" should match "\*\(a\|b\[\)" ✓ "***" should match "\*\*\*" ✓ "-adobe-courier-bold-o-normal--12-120-75-75-/-70-iso8859-1" should not match "-*-*-*-*-*-*-12-*-*-*-m-*-*-*" ✓ "-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1" should match "-*-*-*-*-*-*-12-*-*-*-m-*-*-*" ✓ "-adobe-courier-bold-o-normal--12-120-75-75-X-70-iso8859-1" should not match "-*-*-*-*-*-*-12-*-*-*-m-*-*-*" ✓ "/dev/udp/129.22.8.102/45" should match "/dev\/@(tcp|udp)\/*\/*" ✓ "/x/y/z" should match "/x/y/z" ✓ "0377" should match "+([0-7])" ✓ "07" should match "+([0-7])" ✓ "09" should not match "+([0-7])" ✓ "1" should match "0|[1-9]*([0-9])" ✓ "12" should match "0|[1-9]*([0-9])" ✓ "123abc" should not match "(a+|b)*" ✓ "123abc" should not match "(a+|b)+" ✓ "123abc" should match "*?(a)bc" ✓ "123abc" should not match "a(b*(foo|bar))d" ✓ "123abc" should not match "ab*(e|f)" ✓ "123abc" should not match "ab**" ✓ "123abc" should not match "ab**(e|f)" ✓ "123abc" should not match "ab**(e|f)g" ✓ "123abc" should not match "ab***ef" ✓ "123abc" should not match "ab*+(e|f)" ✓ "123abc" should not match "ab*d+(e|f)" ✓ "123abc" should not match "ab?*(e|f)" ✓ "12abc" should not match "0|[1-9]*([0-9])" ✓ "137577991" should match "*(0|1|3|5|7|9)" ✓ "2468" should not match "*(0|1|3|5|7|9)" ✓ "?a?b" should match "\??\?b" ✓ "\a\b\c" should not match "abc" ✓ "a" should match "!(*.a|*.b|*.c)" ✓ "a" should not match "!(a)" ✓ "a" should not match "!(a)*" ✓ "a" should match "(a)" ✓ "a" should not match "(b)" ✓ "a" should match "*(a)" ✓ "a" should match "+(a)" ✓ "a" should match "?" ✓ "a" should match "?(a|b)" ✓ "a" should not match "??" ✓ "a" should match "a!(b)*" ✓ "a" should match "a?(a|b)" ✓ "a" should match "a?(x)" ✓ "a" should not match "a??b" ✓ "a" should not match "b?(a|b)" ✓ "a((((b" should match "a(*b" ✓ "a((((b" should not match "a(b" ✓ "a((((b" should not match "a\(b" ✓ "a((b" should match "a(*b" ✓ "a((b" should not match "a(b" ✓ "a((b" should not match "a\(b" ✓ "a(b" should match "a(*b" ✓ "a(b" should match "a(b" ✓ "a(b" should match "a\(b" ✓ "a." should match "!(*.a|*.b|*.c)" ✓ "a." should match "*!(.a|.b|.c)" ✓ "a." should match "*.!(a)" ✓ "a." should match "*.!(a|b|c)" ✓ "a." should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "a." should not match "*.+(b|d)" ✓ "a.a" should not match "!(*.[a-b]*)" ✓ "a.a" should not match "!(*.a|*.b|*.c)" ✓ "a.a" should not match "!(*[a-b].[a-b]*)" ✓ "a.a" should not match "!*.(a|b)" ✓ "a.a" should not match "!*.(a|b)*" ✓ "a.a" should match "(a|d).(a|b)*" ✓ "a.a" should match "(b|a).(a)" ✓ "a.a" should match "*!(.a|.b|.c)" ✓ "a.a" should not match "*.!(a)" ✓ "a.a" should not match "*.!(a|b|c)" ✓ "a.a" should match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "a.a" should not match "*.+(b|d)" ✓ "a.a" should match "@(b|a).@(a)" ✓ "a.a.a" should not match "!(*.[a-b]*)" ✓ "a.a.a" should not match "!(*[a-b].[a-b]*)" ✓ "a.a.a" should not match "!*.(a|b)" ✓ "a.a.a" should not match "!*.(a|b)*" ✓ "a.a.a" should match "*.!(a)" ✓ "a.a.a" should not match "*.+(b|d)" ✓ "a.aa.a" should not match "(b|a).(a)" ✓ "a.aa.a" should not match "@(b|a).@(a)" ✓ "a.abcd" should match "!(*.a|*.b|*.c)" ✓ "a.abcd" should not match "!(*.a|*.b|*.c)*" ✓ "a.abcd" should match "*!(*.a|*.b|*.c)*" ✓ "a.abcd" should match "*!(.a|.b|.c)" ✓ "a.abcd" should match "*.!(a|b|c)" ✓ "a.abcd" should not match "*.!(a|b|c)*" ✓ "a.abcd" should match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "a.b" should not match "!(*.*)" ✓ "a.b" should not match "!(*.[a-b]*)" ✓ "a.b" should not match "!(*.a|*.b|*.c)" ✓ "a.b" should not match "!(*[a-b].[a-b]*)" ✓ "a.b" should not match "!*.(a|b)" ✓ "a.b" should not match "!*.(a|b)*" ✓ "a.b" should match "(a|d).(a|b)*" ✓ "a.b" should match "*!(.a|.b|.c)" ✓ "a.b" should match "*.!(a)" ✓ "a.b" should not match "*.!(a|b|c)" ✓ "a.b" should match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "a.b" should match "*.+(b|d)" ✓ "a.bb" should not match "!(*.[a-b]*)" ✓ "a.bb" should not match "!(*[a-b].[a-b]*)" ✓ "a.bb" should match "!*.(a|b)" ✓ "a.bb" should not match "!*.(a|b)*" ✓ "a.bb" should not match "!*.*(a|b)" ✓ "a.bb" should match "(a|d).(a|b)*" ✓ "a.bb" should not match "(b|a).(a)" ✓ "a.bb" should match "*.+(b|d)" ✓ "a.bb" should not match "@(b|a).@(a)" ✓ "a.c" should not match "!(*.a|*.b|*.c)" ✓ "a.c" should match "*!(.a|.b|.c)" ✓ "a.c" should not match "*.!(a|b|c)" ✓ "a.c" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "a.c.d" should match "!(*.a|*.b|*.c)" ✓ "a.c.d" should match "*!(.a|.b|.c)" ✓ "a.c.d" should match "*.!(a|b|c)" ✓ "a.c.d" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "a.ccc" should match "!(*.[a-b]*)" ✓ "a.ccc" should match "!(*[a-b].[a-b]*)" ✓ "a.ccc" should match "!*.(a|b)" ✓ "a.ccc" should match "!*.(a|b)*" ✓ "a.ccc" should not match "*.+(b|d)" ✓ "a.js" should not match "!(*.js)" ✓ "a.js" should match "*!(.js)" ✓ "a.js" should not match "*.!(js)" ✓ "a.js" should not match "a.!(js)" ✓ "a.js" should not match "a.!(js)*" ✓ "a.js.js" should not match "!(*.js)" ✓ "a.js.js" should match "*!(.js)" ✓ "a.js.js" should match "*.!(js)" ✓ "a.js.js" should match "*.*(js).js" ✓ "a.md" should match "!(*.js)" ✓ "a.md" should match "*!(.js)" ✓ "a.md" should match "*.!(js)" ✓ "a.md" should match "a.!(js)" ✓ "a.md" should match "a.!(js)*" ✓ "a.md.js" should not match "*.*(js).js" ✓ "a.txt" should match "a.!(js)" ✓ "a.txt" should match "a.!(js)*" ✓ "a/!(z)" should match "a/!(z)" ✓ "a/b" should match "a/!(z)" ✓ "a/b/c.txt" should not match "*/b/!(*).txt" ✓ "a/b/c.txt" should not match "*/b/!(c).txt" ✓ "a/b/c.txt" should match "*/b/!(cc).txt" ✓ "a/b/cc.txt" should not match "*/b/!(*).txt" ✓ "a/b/cc.txt" should not match "*/b/!(c).txt" ✓ "a/b/cc.txt" should not match "*/b/!(cc).txt" ✓ "a/dir/foo.txt" should match "*/dir/**/!(bar).txt" ✓ "a/z" should not match "a/!(z)" ✓ "a\(b" should not match "a(*b" ✓ "a\(b" should not match "a(b" ✓ "a\z" should match "a\z" ✓ "a\z" should match "a\z" ✓ "a\b" should match "a/b" ✓ "a\z" should match "a\z" ✓ "a\z" should not match "a\z" ✓ "aa" should not match "!(a!(b))" ✓ "aa" should match "!(a)" ✓ "aa" should not match "!(a)*" ✓ "aa" should not match "?" ✓ "aa" should not match "@(a)b" ✓ "aa" should match "a!(b)*" ✓ "aa" should not match "a??b" ✓ "aa.aa" should not match "(b|a).(a)" ✓ "aa.aa" should not match "@(b|a).@(a)" ✓ "aaa" should not match "!(a)*" ✓ "aaa" should match "a!(b)*" ✓ "aaaaaaabababab" should match "*ab" ✓ "aaac" should match "*(@(a))a@(c)" ✓ "aaaz" should match "[a*(]*z" ✓ "aab" should not match "!(a)*" ✓ "aab" should not match "?" ✓ "aab" should not match "??" ✓ "aab" should not match "@(c)b" ✓ "aab" should match "a!(b)*" ✓ "aab" should not match "a??b" ✓ "aac" should match "*(@(a))a@(c)" ✓ "aac" should not match "*(@(a))b@(c)" ✓ "aax" should not match "a!(a*|b)" ✓ "aax" should match "a!(x*|b)" ✓ "aax" should match "a?(a*|b)" ✓ "aaz" should match "[a*(]*z" ✓ "ab" should match "!(*.*)" ✓ "ab" should match "!(a!(b))" ✓ "ab" should not match "!(a)*" ✓ "ab" should match "(a+|b)*" ✓ "ab" should match "(a+|b)+" ✓ "ab" should not match "*?(a)bc" ✓ "ab" should not match "a!(*(b|B))" ✓ "ab" should not match "a!(@(b|B))" ✓ "aB" should not match "a!(@(b|B))" ✓ "ab" should not match "a!(b)*" ✓ "ab" should not match "a(*b" ✓ "ab" should not match "a(b" ✓ "ab" should not match "a(b*(foo|bar))d" ✓ "ab" should not match "a/b" ✓ "ab" should not match "a\(b" ✓ "ab" should match "ab*(e|f)" ✓ "ab" should match "ab**" ✓ "ab" should match "ab**(e|f)" ✓ "ab" should not match "ab**(e|f)g" ✓ "ab" should not match "ab***ef" ✓ "ab" should not match "ab*+(e|f)" ✓ "ab" should not match "ab*d+(e|f)" ✓ "ab" should not match "ab?*(e|f)" ✓ "ab/cXd/efXg/hi" should match "**/*X*/**/*i" ✓ "ab/cXd/efXg/hi" should match "*/*X*/*/*i" ✓ "ab/cXd/efXg/hi" should not match "*X*i" ✓ "ab/cXd/efXg/hi" should not match "*Xg*i" ✓ "ab]" should match "a!(@(b|B))" ✓ "abab" should match "(a+|b)*" ✓ "abab" should match "(a+|b)+" ✓ "abab" should not match "*?(a)bc" ✓ "abab" should not match "a(b*(foo|bar))d" ✓ "abab" should not match "ab*(e|f)" ✓ "abab" should match "ab**" ✓ "abab" should match "ab**(e|f)" ✓ "abab" should not match "ab**(e|f)g" ✓ "abab" should not match "ab***ef" ✓ "abab" should not match "ab*+(e|f)" ✓ "abab" should not match "ab*d+(e|f)" ✓ "abab" should not match "ab?*(e|f)" ✓ "abb" should match "!(*.*)" ✓ "abb" should not match "!(a)*" ✓ "abb" should not match "a!(b)*" ✓ "abbcd" should match "@(ab|a*(b))*(c)d" ✓ "abc" should not match "\a\b\c" ✓ "aBc" should match "a!(@(b|B))" ✓ "abcd" should match "?@(a|b)*@(c)d" ✓ "abcd" should match "@(ab|a*@(b))*(c)d" ✓ "abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txt" should match "**/*a*b*g*n*t" ✓ "abcd/abcdefg/abcdefghijk/abcdefghijklmnop.txtz" should not match "**/*a*b*g*n*t" ✓ "abcdef" should match "(a+|b)*" ✓ "abcdef" should not match "(a+|b)+" ✓ "abcdef" should not match "*?(a)bc" ✓ "abcdef" should not match "a(b*(foo|bar))d" ✓ "abcdef" should not match "ab*(e|f)" ✓ "abcdef" should match "ab**" ✓ "abcdef" should match "ab**(e|f)" ✓ "abcdef" should not match "ab**(e|f)g" ✓ "abcdef" should match "ab***ef" ✓ "abcdef" should match "ab*+(e|f)" ✓ "abcdef" should match "ab*d+(e|f)" ✓ "abcdef" should not match "ab?*(e|f)" ✓ "abcfef" should match "(a+|b)*" ✓ "abcfef" should not match "(a+|b)+" ✓ "abcfef" should not match "*?(a)bc" ✓ "abcfef" should not match "a(b*(foo|bar))d" ✓ "abcfef" should not match "ab*(e|f)" ✓ "abcfef" should match "ab**" ✓ "abcfef" should match "ab**(e|f)" ✓ "abcfef" should not match "ab**(e|f)g" ✓ "abcfef" should match "ab***ef" ✓ "abcfef" should match "ab*+(e|f)" ✓ "abcfef" should not match "ab*d+(e|f)" ✓ "abcfef" should match "ab?*(e|f)" ✓ "abcfefg" should match "(a+|b)*" ✓ "abcfefg" should not match "(a+|b)+" ✓ "abcfefg" should not match "*?(a)bc" ✓ "abcfefg" should not match "a(b*(foo|bar))d" ✓ "abcfefg" should not match "ab*(e|f)" ✓ "abcfefg" should match "ab**" ✓ "abcfefg" should match "ab**(e|f)" ✓ "abcfefg" should match "ab**(e|f)g" ✓ "abcfefg" should not match "ab***ef" ✓ "abcfefg" should not match "ab*+(e|f)" ✓ "abcfefg" should not match "ab*d+(e|f)" ✓ "abcfefg" should not match "ab?*(e|f)" ✓ "abcx" should match "!([[*])*" ✓ "abcx" should match "+(a|b\[)*" ✓ "abcx" should not match "[a*(]*z" ✓ "abcXdefXghi" should match "*X*i" ✓ "abcz" should match "!([[*])*" ✓ "abcz" should match "+(a|b\[)*" ✓ "abcz" should match "[a*(]*z" ✓ "abd" should match "(a+|b)*" ✓ "abd" should not match "(a+|b)+" ✓ "abd" should not match "*?(a)bc" ✓ "abd" should match "a!(*(b|B))" ✓ "abd" should match "a!(@(b|B))" ✓ "abd" should not match "a!(@(b|B))d" ✓ "abd" should match "a(b*(foo|bar))d" ✓ "abd" should match "a+(b|c)d" ✓ "abd" should match "a[b*(foo|bar)]d" ✓ "abd" should not match "ab*(e|f)" ✓ "abd" should match "ab**" ✓ "abd" should match "ab**(e|f)" ✓ "abd" should not match "ab**(e|f)g" ✓ "abd" should not match "ab***ef" ✓ "abd" should not match "ab*+(e|f)" ✓ "abd" should not match "ab*d+(e|f)" ✓ "abd" should match "ab?*(e|f)" ✓ "abef" should match "(a+|b)*" ✓ "abef" should not match "(a+|b)+" ✓ "abef" should not match "*(a+|b)" ✓ "abef" should not match "*?(a)bc" ✓ "abef" should not match "a(b*(foo|bar))d" ✓ "abef" should match "ab*(e|f)" ✓ "abef" should match "ab**" ✓ "abef" should match "ab**(e|f)" ✓ "abef" should not match "ab**(e|f)g" ✓ "abef" should match "ab***ef" ✓ "abef" should match "ab*+(e|f)" ✓ "abef" should not match "ab*d+(e|f)" ✓ "abef" should match "ab?*(e|f)" ✓ "abz" should not match "a!(*)" ✓ "abz" should match "a!(z)" ✓ "abz" should match "a*!(z)" ✓ "abz" should not match "a*(z)" ✓ "abz" should match "a**(z)" ✓ "abz" should match "a*@(z)" ✓ "abz" should not match "a+(z)" ✓ "abz" should not match "a?(z)" ✓ "abz" should not match "a@(z)" ✓ "ac" should not match "!(a)*" ✓ "ac" should match "*(@(a))a@(c)" ✓ "ac" should match "a!(*(b|B))" ✓ "ac" should match "a!(@(b|B))" ✓ "ac" should match "a!(b)*" ✓ "accdef" should match "(a+|b)*" ✓ "accdef" should not match "(a+|b)+" ✓ "accdef" should not match "*?(a)bc" ✓ "accdef" should not match "a(b*(foo|bar))d" ✓ "accdef" should not match "ab*(e|f)" ✓ "accdef" should not match "ab**" ✓ "accdef" should not match "ab**(e|f)" ✓ "accdef" should not match "ab**(e|f)g" ✓ "accdef" should not match "ab***ef" ✓ "accdef" should not match "ab*+(e|f)" ✓ "accdef" should not match "ab*d+(e|f)" ✓ "accdef" should not match "ab?*(e|f)" ✓ "acd" should match "(a+|b)*" ✓ "acd" should not match "(a+|b)+" ✓ "acd" should not match "*?(a)bc" ✓ "acd" should match "@(ab|a*(b))*(c)d" ✓ "acd" should match "a!(*(b|B))" ✓ "acd" should match "a!(@(b|B))" ✓ "acd" should match "a!(@(b|B))d" ✓ "acd" should not match "a(b*(foo|bar))d" ✓ "acd" should match "a+(b|c)d" ✓ "acd" should not match "a[b*(foo|bar)]d" ✓ "acd" should not match "ab*(e|f)" ✓ "acd" should not match "ab**" ✓ "acd" should not match "ab**(e|f)" ✓ "acd" should not match "ab**(e|f)g" ✓ "acd" should not match "ab***ef" ✓ "acd" should not match "ab*+(e|f)" ✓ "acd" should not match "ab*d+(e|f)" ✓ "acd" should not match "ab?*(e|f)" ✓ "axz" should not match "a+(z)" ✓ "az" should not match "a!(*)" ✓ "az" should not match "a!(z)" ✓ "az" should match "a*!(z)" ✓ "az" should match "a*(z)" ✓ "az" should match "a**(z)" ✓ "az" should match "a*@(z)" ✓ "az" should match "a+(z)" ✓ "az" should match "a?(z)" ✓ "az" should match "a@(z)" ✓ "az" should not match "a\z" ✓ "az" should not match "a\z" ✓ "b" should match "!(a)*" ✓ "b" should match "(a+|b)*" ✓ "b" should not match "a!(b)*" ✓ "b.a" should match "(b|a).(a)" ✓ "b.a" should match "@(b|a).@(a)" ✓ "b/a" should not match "!(b/a)" ✓ "b/b" should match "!(b/a)" ✓ "b/c" should match "!(b/a)" ✓ "b/c" should not match "b/!(c)" ✓ "b/c" should match "b/!(cc)" ✓ "b/c.txt" should not match "b/!(c).txt" ✓ "b/c.txt" should match "b/!(cc).txt" ✓ "b/cc" should match "b/!(c)" ✓ "b/cc" should not match "b/!(cc)" ✓ "b/cc.txt" should not match "b/!(c).txt" ✓ "b/cc.txt" should not match "b/!(cc).txt" ✓ "b/ccc" should match "b/!(c)" ✓ "ba" should match "!(a!(b))" ✓ "ba" should match "b?(a|b)" ✓ "baaac" should not match "*(@(a))a@(c)" ✓ "bar" should match "!(foo)" ✓ "bar" should match "!(foo)*" ✓ "bar" should match "!(foo)b*" ✓ "bar" should match "*(!(foo))" ✓ "baz" should match "!(foo)*" ✓ "baz" should match "!(foo)b*" ✓ "baz" should match "*(!(foo))" ✓ "bb" should match "!(a!(b))" ✓ "bb" should match "!(a)*" ✓ "bb" should not match "a!(b)*" ✓ "bb" should not match "a?(a|b)" ✓ "bbc" should match "!([[*])*" ✓ "bbc" should not match "+(a|b\[)*" ✓ "bbc" should not match "[a*(]*z" ✓ "bz" should not match "a+(z)" ✓ "c" should not match "*(@(a))a@(c)" ✓ "c.a" should not match "!(*.[a-b]*)" ✓ "c.a" should match "!(*[a-b].[a-b]*)" ✓ "c.a" should not match "!*.(a|b)" ✓ "c.a" should not match "!*.(a|b)*" ✓ "c.a" should not match "(b|a).(a)" ✓ "c.a" should not match "*.!(a)" ✓ "c.a" should not match "*.+(b|d)" ✓ "c.a" should not match "@(b|a).@(a)" ✓ "c.c" should not match "!(*.a|*.b|*.c)" ✓ "c.c" should match "*!(.a|.b|.c)" ✓ "c.c" should not match "*.!(a|b|c)" ✓ "c.c" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "c.ccc" should match "!(*.[a-b]*)" ✓ "c.ccc" should match "!(*[a-b].[a-b]*)" ✓ "c.js" should not match "!(*.js)" ✓ "c.js" should match "*!(.js)" ✓ "c.js" should not match "*.!(js)" ✓ "c/a/v" should match "c/!(z)/v" ✓ "c/a/v" should not match "c/*(z)/v" ✓ "c/a/v" should not match "c/+(z)/v" ✓ "c/a/v" should not match "c/@(z)/v" ✓ "c/z/v" should not match "*(z)" ✓ "c/z/v" should not match "+(z)" ✓ "c/z/v" should not match "?(z)" ✓ "c/z/v" should not match "c/!(z)/v" ✓ "c/z/v" should match "c/*(z)/v" ✓ "c/z/v" should match "c/+(z)/v" ✓ "c/z/v" should match "c/@(z)/v" ✓ "c/z/v" should match "c/z/v" ✓ "cc.a" should not match "(b|a).(a)" ✓ "cc.a" should not match "@(b|a).@(a)" ✓ "ccc" should match "!(a)*" ✓ "ccc" should not match "a!(b)*" ✓ "cow" should match "!(*.*)" ✓ "cow" should not match "!(*.*)." ✓ "cow" should not match ".!(*.*)" ✓ "cz" should not match "a!(*)" ✓ "cz" should not match "a!(z)" ✓ "cz" should not match "a*!(z)" ✓ "cz" should not match "a*(z)" ✓ "cz" should not match "a**(z)" ✓ "cz" should not match "a*@(z)" ✓ "cz" should not match "a+(z)" ✓ "cz" should not match "a?(z)" ✓ "cz" should not match "a@(z)" ✓ "d.a.d" should not match "!(*.[a-b]*)" ✓ "d.a.d" should match "!(*[a-b].[a-b]*)" ✓ "d.a.d" should not match "!*.(a|b)*" ✓ "d.a.d" should match "!*.*(a|b)" ✓ "d.a.d" should not match "!*.{a,b}*" ✓ "d.a.d" should match "*.!(a)" ✓ "d.a.d" should match "*.+(b|d)" ✓ "d.d" should match "!(*.a|*.b|*.c)" ✓ "d.d" should match "*!(.a|.b|.c)" ✓ "d.d" should match "*.!(a|b|c)" ✓ "d.d" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "d.js.d" should match "!(*.js)" ✓ "d.js.d" should match "*!(.js)" ✓ "d.js.d" should match "*.!(js)" ✓ "dd.aa.d" should not match "(b|a).(a)" ✓ "dd.aa.d" should not match "@(b|a).@(a)" ✓ "def" should not match "()ef" ✓ "e.e" should match "!(*.a|*.b|*.c)" ✓ "e.e" should match "*!(.a|.b|.c)" ✓ "e.e" should match "*.!(a|b|c)" ✓ "e.e" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "ef" should match "()ef" ✓ "effgz" should match "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" ✓ "efgz" should match "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" ✓ "egz" should match "@(b+(c)d|e*(f)g?|?(h)i@(j|k))" ✓ "egz" should not match "@(b+(c)d|e+(f)g?|?(h)i@(j|k))" ✓ "egzefffgzbcdij" should match "*(b+(c)d|e*(f)g?|?(h)i@(j|k))" ✓ "f" should not match "!(f!(o))" ✓ "f" should match "!(f(o))" ✓ "f" should not match "!(f)" ✓ "f" should not match "*(!(f))" ✓ "f" should not match "+(!(f))" ✓ "f.a" should not match "!(*.a|*.b|*.c)" ✓ "f.a" should match "*!(.a|.b|.c)" ✓ "f.a" should not match "*.!(a|b|c)" ✓ "f.f" should match "!(*.a|*.b|*.c)" ✓ "f.f" should match "*!(.a|.b|.c)" ✓ "f.f" should match "*.!(a|b|c)" ✓ "f.f" should not match "*.(a|b|@(ab|a*@(b))*(c)d)" ✓ "fa" should not match "!(f!(o))" ✓ "fa" should match "!(f(o))" ✓ "fb" should not match "!(f!(o))" ✓ "fb" should match "!(f(o))" ✓ "fff" should match "!(f)" ✓ "fff" should match "*(!(f))" ✓ "fff" should match "+(!(f))" ✓ "fffooofoooooffoofffooofff" should match "*(*(f)*(o))" ✓ "ffo" should match "*(f*(o))" ✓ "file.C" should not match "*.c?(c)" ✓ "file.c" should match "*.c?(c)" ✓ "file.cc" should match "*.c?(c)" ✓ "file.ccc" should not match "*.c?(c)" ✓ "fo" should match "!(f!(o))" ✓ "fo" should not match "!(f(o))" ✓ "fofo" should match "*(f*(o))" ✓ "fofoofoofofoo" should match "*(fo|foo)" ✓ "fofoofoofofoo" should match "*(fo|foo)" ✓ "foo" should match "!(!(foo))" ✓ "foo" should match "!(f)" ✓ "foo" should not match "!(foo)" ✓ "foo" should not match "!(foo)*" ✓ "foo" should not match "!(foo)*" ✓ "foo" should not match "!(foo)+" ✓ "foo" should not match "!(foo)b*" ✓ "foo" should match "!(x)" ✓ "foo" should match "!(x)*" ✓ "foo" should match "*" ✓ "foo" should match "*(!(f))" ✓ "foo" should not match "*(!(foo))" ✓ "foo" should not match "*(@(a))a@(c)" ✓ "foo" should match "*(@(foo))" ✓ "foo" should not match "*(a|b\[)" ✓ "foo" should match "*(a|b\[)|f*" ✓ "foo" should match "@(*(a|b\[)|f*)" ✓ "foo" should not match "*/*/*" ✓ "foo" should not match "*f" ✓ "foo" should match "*foo*" ✓ "foo" should match "+(!(f))" ✓ "foo" should not match "??" ✓ "foo" should match "???" ✓ "foo" should not match "bar" ✓ "foo" should match "f*" ✓ "foo" should not match "fo" ✓ "foo" should match "foo" ✓ "foo" should match "{*(a|b\[),f*}" ✓ "foo*" should match "foo\*" ✓ "foo*bar" should match "foo\*bar" ✓ "foo.js" should not match "!(foo).js" ✓ "foo.js.js" should match "*.!(js)" ✓ "foo.js.js" should not match "*.!(js)*" ✓ "foo.js.js" should not match "*.!(js)*.!(js)" ✓ "foo.js.js" should not match "*.!(js)+" ✓ "foo.txt" should match "**/!(bar).txt" ✓ "foo/bar" should not match "*/*/*" ✓ "foo/bar" should match "foo/!(foo)" ✓ "foo/bar" should match "foo/*" ✓ "foo/bar" should match "foo/bar" ✓ "foo/bar" should not match "foo?bar" ✓ "foo/bar" should match "foo[/]bar" ✓ "foo/bar/baz.jsx" should match "foo/bar/**/*.+(js|jsx)" ✓ "foo/bar/baz.jsx" should match "foo/bar/*.+(js|jsx)" ✓ "foo/bb/aa/rr" should match "**/**/**" ✓ "foo/bb/aa/rr" should not match "*/*/*" ✓ "foo/bba/arr" should match "*/*/*" ✓ "foo/bba/arr" should not match "foo*" ✓ "foo/bba/arr" should not match "foo**" ✓ "foo/bba/arr" should not match "foo/*" ✓ "foo/bba/arr" should match "foo/**" ✓ "foo/bba/arr" should not match "foo/**arr" ✓ "foo/bba/arr" should not match "foo/**z" ✓ "foo/bba/arr" should not match "foo/*arr" ✓ "foo/bba/arr" should not match "foo/*z" ✓ "foob" should not match "!(foo)b*" ✓ "foob" should not match "(foo)bb" ✓ "foobar" should match "!(foo)" ✓ "foobar" should not match "!(foo)*" ✓ "foobar" should not match "!(foo)b*" ✓ "foobar" should match "*(!(foo))" ✓ "foobar" should match "*ob*a*r*" ✓ "foobar" should not match "foo\*bar" ✓ "foobb" should not match "!(foo)b*" ✓ "foobb" should match "(foo)bb" ✓ "(foo)bb" should match "\(foo\)bb" ✓ "foofoofo" should match "@(foo|f|fo)*(f|of+(o))" ✓ "foofoofo" should match "@(foo|f|fo)*(f|of+(o))" ✓ "fooofoofofooo" should match "*(f*(o))" ✓ "foooofo" should match "*(f*(o))" ✓ "foooofof" should match "*(f*(o))" ✓ "foooofof" should not match "*(f+(o))" ✓ "foooofofx" should not match "*(f*(o))" ✓ "foooxfooxfoxfooox" should match "*(f*(o)x)" ✓ "foooxfooxfxfooox" should match "*(f*(o)x)" ✓ "foooxfooxofoxfooox" should not match "*(f*(o)x)" ✓ "foot" should match "@(!(z*)|*x)" ✓ "foox" should match "@(!(z*)|*x)" ✓ "fz" should not match "*(z)" ✓ "fz" should not match "+(z)" ✓ "fz" should not match "?(z)" ✓ "moo.cow" should not match "!(moo).!(cow)" ✓ "moo.cow" should not match "!(*).!(*)" ✓ "mad.moo.cow" should not match "!(*.*).!(*.*)" ✓ "mad.moo.cow" should not match ".!(*.*)" ✓ "Makefile" should match "!(*.c|*.h|Makefile.in|config*|README)" ✓ "Makefile.in" should not match "!(*.c|*.h|Makefile.in|config*|README)" ✓ "moo" should match "!(*.*)" ✓ "moo" should not match "!(*.*)." ✓ "moo" should not match ".!(*.*)" ✓ "moo.cow" should not match "!(*.*)" ✓ "moo.cow" should not match "!(*.*)." ✓ "moo.cow" should not match ".!(*.*)" ✓ "mucca.pazza" should not match "mu!(*(c))?.pa!(*(z))?" ✓ "ofoofo" should match "*(of+(o))" ✓ "ofoofo" should match "*(of+(o)|f)" ✓ "ofooofoofofooo" should not match "*(f*(o))" ✓ "ofoooxoofxo" should match "*(*(of*(o)x)o)" ✓ "ofoooxoofxoofoooxoofxo" should match "*(*(of*(o)x)o)" ✓ "ofoooxoofxoofoooxoofxofo" should not match "*(*(of*(o)x)o)" ✓ "ofoooxoofxoofoooxoofxoo" should match "*(*(of*(o)x)o)" ✓ "ofoooxoofxoofoooxoofxooofxofxo" should match "*(*(of*(o)x)o)" ✓ "ofxoofxo" should match "*(*(of*(o)x)o)" ✓ "oofooofo" should match "*(of|oof+(o))" ✓ "ooo" should match "!(f)" ✓ "ooo" should match "*(!(f))" ✓ "ooo" should match "+(!(f))" ✓ "oxfoxfox" should not match "*(oxf+(ox))" ✓ "oxfoxoxfox" should match "*(oxf+(ox))" ✓ "para" should match "para*([0-9])" ✓ "para" should not match "para+([0-9])" ✓ "para.38" should match "para!(*.[00-09])" ✓ "para.graph" should match "para!(*.[0-9])" ✓ "para13829383746592" should match "para*([0-9])" ✓ "para381" should not match "para?([345]|99)1" ✓ "para39" should match "para!(*.[0-9])" ✓ "para987346523" should match "para+([0-9])" ✓ "para991" should match "para?([345]|99)1" ✓ "paragraph" should match "para!(*.[0-9])" ✓ "paragraph" should not match "para*([0-9])" ✓ "paragraph" should match "para@(chute|graph)" ✓ "paramour" should not match "para@(chute|graph)" ✓ "parse.y" should match "!(*.c|*.h|Makefile.in|config*|README)" ✓ "shell.c" should not match "!(*.c|*.h|Makefile.in|config*|README)" ✓ "VMS.FILE;" should not match "*\;[1-9]*([0-9])" ✓ "VMS.FILE;0" should not match "*\;[1-9]*([0-9])" ✓ "VMS.FILE;1" should match "*\;[1-9]*([0-9])" ✓ "VMS.FILE;1" should match "*;[1-9]*([0-9])" ✓ "VMS.FILE;139" should match "*\;[1-9]*([0-9])" ✓ "VMS.FILE;1N" should not match "*\;[1-9]*([0-9])" ✓ "xfoooofof" should not match "*(f*(o))" ✓ "XXX/adobe/courier/bold/o/normal//12/120/75/75/m/70/iso8859/1" should match "XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*" ✓ "XXX/adobe/courier/bold/o/normal//12/120/75/75/X/70/iso8859/1" should not match "XXX/*/*/*/*/*/*/12/*/*/*/m/*/*/*" ✓ "z" should match "*(z)" ✓ "z" should match "+(z)" ✓ "z" should match "?(z)" ✓ "zf" should not match "*(z)" ✓ "zf" should not match "+(z)" ✓ "zf" should not match "?(z)" ✓ "zoot" should not match "@(!(z*)|*x)" ✓ "zoox" should match "@(!(z*)|*x)" ✓ "zz" should not match "(a+|b)*" extglobs bash ✓ should match extended globs from the bash spec: (185ms) other ✓ should support backtracking in alternation matches ✓ should support exclusions ✓ valid numbers ✓ check extended globbing in pattern removal (47ms) ✓ More tests derived from a bug report (in bash) concerning extended glob patterns following a * ✓ bug in all versions up to and including bash-2.05b ✓ should work with character classes ✓ should support POSIX character classes in extglobs ✓ should pass extglob2 tests ✓ should support exclusions extglobs ✓ should throw on imbalanced sets when `optionsBrackets` is true ✓ should escape special characters immediately following opening parens ✓ should not convert capture groups to extglobs ✓ should match nested directories with negation extglobs ✓ should support *(...) (66ms) ✓ should support +(...) extglobs ✓ should support ?(...) extglobs ✓ should support @(...) extglobs ✓ should match exactly one of the given pattern: ✓ should pass tests from rosenblatt's korn shell book ✓ tests derived from the pd-ksh test suite ✓ stuff from korn's book ✓ simple kleene star tests ✓ should support multiple extglobs: ✓ should correctly match empty parens ✓ should match escaped parens ✓ should match escaped backslashes (67ms) ✓ should support regex characters negation ✓ should support negation extglobs as the entire pattern ✓ should support negation extglobs as part of a pattern ✓ should support excluding dots with negation extglobs ✓ should support negation extglobs in patterns with slashes ✓ should not match slashes with extglobs that do not have slashes ✓ should support matching slashes with extglobs that have slashes ✓ should support negation extglobs following ! ✓ should support nested negation extglobs ✓ should support multiple !(...) extglobs in a pattern ✓ should multiple nested negation extglobs ✓ should support logical-or inside negation !(...) extglobs ✓ should support multiple logical-ors negation extglobs ✓ should support nested logical-ors inside negation extglobs file extensions ✓ should support matching file extensions with @(...) ✓ should support matching file extensions with +(...) ✓ should support matching file extensions with *(...) ✓ should support matching file extensions with ?(...) statechar ✓ should support ?(...) extglobs ending with statechar ✓ should support *(...) extglobs ending with statechar ✓ should support @(...) extglobs ending with statechar ✓ should support ?(...) extglobs ending with statechar (65ms) ✓ should support !(...) extglobs ending with statechar stars issue related ✓ should match paths with no slashes (micromatch/#15) ✓ should regard non-exclusive double-stars as single stars ✓ should support globstars followed by braces ✓ should support globstars followed by braces with nested extglobs ✓ should support multiple globstars in one pattern ✓ should match file extensions: ✓ should respect trailing slashes on paterns ✓ should match literal globstars when stars are escaped ✓ single dots ✓ double dots (81ms) ✓ should match ✓ should match nested directories ✓ should not match dotfiles by default ✓ should match leading dots when defined in pattern ✓ todo... (micromatch/#24) globstars ✓ should match globstars ✓ should regard non-exclusive double-stars as single stars ✓ should support globstars (**) issue-related tests ✓ should match with braces (see picomatch/issues#8) ✓ should match Japanese characters (see micromatch/issues#127) ✓ micromatch issue#15 ✓ micromatch issue#23 ✓ micromatch issue#24 ✓ micromatch issue#58 - only match nested dirs when `**` is the only thing in a segment ✓ micromatch issue#79 handling of potential regex exploits ✓ should support long escape sequences (72ms) ✓ should throw an error when the pattern is too long ✓ should allow max bytes to be customized minimatch parity: minimatch issues (as of 12/7/2016) ✓ https://github.com/isaacs/minimatch/issues/29 ✓ https://github.com/isaacs/minimatch/issues/30 ✓ https://github.com/isaacs/minimatch/issues/50 ✓ https://github.com/isaacs/minimatch/issues/67 (should work consistently with `makeRe` and matcher functions) ✓ https://github.com/isaacs/minimatch/issues/75 ✓ https://github.com/isaacs/minimatch/issues/78 ✓ https://github.com/isaacs/minimatch/issues/82 ✓ https://github.com/isaacs/minimatch/issues/83 negation patterns - "!" ✓ should patterns with a leading "!" as negated/inverted globs ✓ should treat non-leading "!" as literal characters ✓ should support negation in globs that have no other special characters ✓ should support multiple leading ! to toggle negation ✓ should support negation extglobs after leading ! ✓ should support negation with globs ✓ should negate files with extensions ✓ should support negated single stars ✓ should support negated globstars (multiple stars) ✓ should not negate when inside quoted strings ✓ should negate dotfiles ✓ should not match slashes with a single star ✓ should match nested directories with globstars non-globs ✓ should match non-globs ✓ should match literal dots ✓ should handle escaped characters as literals ✓ should match windows paths options.expandRange ✓ should support a custom function for expanding ranges in brace patterns options.format ✓ should match the string returned by options.format (75ms) options.ignore ✓ should not match ignored patterns ✓ should filter out ignored patterns options options.matchBase ✓ should match the basename of file paths when `options.matchBase` is true ✓ should work with negation patterns options.flags ✓ should be case-sensitive by default ✓ should not be case-sensitive when `i` is set on `options.flags` options.nocase ✓ should not be case-sensitive when `options.nocase` is true ✓ should not double-set `i` when both `nocase` and the `i` flag are set options.noextglob ✓ should match literal parens when noextglob is true (issue #116) ✓ should not match extglobs when noextglob is true options.unescape ✓ should remove backslashes in glob patterns: options.nonegate ✓ should support the `nonegate` option: options.windows ✓ should windows file paths by default ✓ should windows absolute paths ✓ should strip leading `./` windows ✓ should convert file paths to posix slashes ✓ should convert absolute paths to posix slashes options.noextglob ✓ should disable extglob support when options.noextglob is true ✓ should work with noext alias to support minimatch options.noglobstar ✓ should disable extglob support when options.noglobstar is true options.onMatch ✓ should call options.onMatch on each matching string parens (non-extglobs) ✓ should support stars following parens ✓ should not match slashes with single stars posix classes posix bracket type conversion ✓ should create regex character classes from POSIX bracket expressions: .isMatch ✓ should support POSIX.2 character classes ✓ should support multiple posix brackets in one character class ✓ should match word characters ✓ should not create an invalid posix character class: ✓ should return `true` when the pattern matches: ✓ should return `false` when the pattern does not match: literals ✓ should match literal brackets when escaped .makeRe() ✓ should make a regular expression for the given pattern: POSIX: From the test suite for the POSIX.2 (BRE) pattern matching code: ✓ First, test POSIX.2 character classes ✓ should match using POSIX.2 negation patterns ✓ should match word characters ✓ should match digits with word class ✓ should not digits ✓ should not match word characters with digit class ✓ should match uppercase alpha characters ✓ should not match lowercase alpha characters ✓ should not match digits with upper class ✓ should match lowercase alpha characters ✓ should not match uppercase alpha characters ✓ should match one lower and one upper character ✓ should match hexadecimal digits ✓ should match punctuation characters (\-!"#$%&'()\*+,./:;<=>?@[\]^_`{|}~) ✓ should only match one character ✓ should only match zero or more punctuation characters ✓ invalid character class expressions are just characters to be matched ✓ should match the start of a valid sh identifier ✓ should match the first two characters of a valid sh identifier ✓ should match multiple posix classses ✓ how about A? ✓ OK, what's a tab? is it a blank? a space? ✓ let's check out characters in the ASCII range ✓ punctuation ✓ graph qmarks and stars ✓ should match question marks with question marks ✓ should match question marks and stars with question marks and stars ✓ should support consecutive stars and question marks ✓ should match backslashes with question marks when not on windows ✓ should match one character per question mark ✓ should not match slashes question marks ✓ should support question marks and stars between slashes ✓ should match no more than one character between slashes ✓ should not match non-leading dots with question marks ✓ should match non-leading dots with question marks when options.dot is true regex features word boundaries ✓ should support word boundaries ✓ should support word boundaries in parens regex lookarounds ✓ should support regex lookbehinds ✓ should throw an error when regex lookbehinds are used on an unsupported node version regex back-references ✓ should support regex backreferences regex character classes ✓ should not match with character classes when disabled ✓ should match with character classes by default ✓ should match character classes ✓ should match character class alphabetical ranges ✓ should match character classes with leading dashes ✓ should match character classes with trailing dashes ✓ should match bracket literals ✓ should support negated character classes ✓ should match negated dashes ✓ should match negated pm ✓ should match alpha-numeric characters ✓ should support valid regex ranges ✓ should support valid regex ranges with glob negation patterns ✓ should support valid regex ranges in negated character classes regex capture groups ✓ should support regex logical "or" ✓ should support regex character classes inside extglobs ✓ should support regex capture groups ✓ should support regex capture groups with slashes ✓ should support regex non-capture groups quantifiers ✓ should support regex quantifiers by escaping braces ✓ should support extglobs with regex quantifiers slash handling - posix ✓ should match a literal string ✓ should match an array of literal strings ✓ should support regex logical or ✓ should support regex ranges ✓ should support single globs (*) ✓ should support globstars (**) ✓ should support negation patterns ✓ should work with file extensions ✓ should match one directory level with a single star (*) (55ms) ✓ should match one or more directories with a globstar (96ms) ✓ should match one or more characters ✓ should match one or zero characters ✓ should respect trailing slashes on paterns (89ms) ✓ should match a literal star when escaped ✓ should match file paths ✓ should match paths with leading `./` when pattern has `./` ✓ should match leading slashes (78ms) ✓ should match double slashes slash handling - windows ✓ should match absolute windows paths with regex from makeRe ✓ should match windows path separators with a string literal ✓ should not match literal backslashes with literal forward slashes when windows is disabled ✓ should match an array of literal strings ✓ should not match backslashes with forward slashes when windows is disabled ✓ should match backslashes when followed by regex logical "or" ✓ should support matching backslashes with regex ranges ✓ should not match slashes with single stars ✓ should support globstars (**) (70ms) ✓ should not match backslashes with globstars when disabled ✓ should work with file extensions ✓ should support negation patterns special characters numbers ✓ should match numbers in the input string qmarks ✓ should match literal ? in the input string ✓ should not match slashes with qmarks ✓ should match literal ? with qmarks ✓ should match other non-slash characters with qmarks ✓ should match non-slash characters when ? is escaped ✓ should match one character per question mark ✓ should enforce one character per qmark even when preceded by stars ✓ should support qmarks and stars ✓ should support qmarks, stars and slashes ✓ should match non-leading dots ✓ should not match leading dots ✓ should match characters preceding a dot parentheses () ✓ should match literal parentheses in the input string ✓ should match literal parens with brackets ✓ should throw an error on imbalanced, unescaped parens ✓ should throw an error on imbalanced, unescaped brackets path characters ✓ should match windows drives with globstars ✓ should not match multiple windows directories with a single star ✓ should match mixed slashes on windows ✓ should match mixed slashes when options.windows is true ✓ should match any character zero or more times, except for / ✓ should match dashes surrounded by spaces brackets ✓ should support square brackets in globs ✓ should match (escaped) bracket literals star - "*" ✓ should match literal * ✓ should support stars following brackets ✓ should support stars following parens ✓ should not match slashes with single stars ✓ should not match dots with stars by default plus - "+" ✓ should match literal + ✓ should support plus signs that follow brackets (and not escape them) ✓ should not escape plus signs that follow parens ✓ should escape plus signs to match string literals ✓ should not escape + following brackets ✓ should not escape + following parens dollar $ ✓ should match dollar signs (59ms) caret ^ ✓ should match carets mixed special characters ✓ should match special characters in paths stars issue related ✓ should respect dots defined in glob pattern (micromatch/#23) single stars ✓ should match anything except slashes and leading dots ✓ should match spaces ✓ should support multiple non-consecutive stars in a path segment ✓ should support multiple stars in a segment ✓ should return true when one of the given patterns matches the string ✓ should return false when the path does not match the pattern ✓ should match a path segment for each single star ✓ should support single globs (*) ✓ should only match a single folder per star when globstars are used (65ms) ✓ should not match a trailing slash when a star is last char ✓ should work with file extensions ✓ should not match slashes when globstars are not exclusive in a path segment ✓ should match slashes when defined in braces ✓ should correctly match slashes ✓ should ignore leading "./" when defined on pattern ✓ should optionally match trailing slashes with braces Wildmat (git) tests ✓ Basic wildmat features ✓ should support recursion 1954 passing (4s) + echo # anymatch tests # anymatch tests + NODE_PATH=. mocha anymatch ✓ should resolve string matchers ✓ should resolve glob matchers ✓ should resolve regexp matchers ✓ should resolve function matchers ✓ should return false for unmatched strings ✓ should ignore improperly typed matchers with returnIndex = true ✓ should return the array index of first positive matcher ✓ should return 0 if provided non-array matcher ✓ should return -1 if no match curried matching function ✓ should resolve matchers ✓ should be usable as an Array.prototype.filter callback ✓ should bind individual criterion extra args ✓ should not allow no args ✓ should not allow bad testString ✓ should allow string to be passed as first member of an array ✓ should pass extra args to function matchers glob negation ✓ should respect negated globs included in a matcher array ✓ should not break returnIndex option ✓ should allow negated globs to negate non-glob matchers windows paths ✓ should resolve backslashes against string matchers ✓ should resolve backslashes against glob matchers ✓ should resolve backslashes against regex matchers ✓ should resolve backslashes against function matchers ✓ should still correctly handle forward-slash paths picomatch options ✓ should support picomatch options 25 passing (69ms) + test != create-stamp debian/debhelper-build-stamp dh_testroot -i dh_prep -i dh_auto_install --buildsystem=nodejs -i Found "files" field in ./package.json, using it mkdir -p /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/anymatch/ cp --reflink=auto -a ./index.js /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/anymatch// cp --reflink=auto -a ./index.d.ts /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/anymatch// cp --reflink=auto -a ./package.json /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/anymatch// Found "files" field in picomatch/package.json, using it mkdir -p /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/picomatch/ cp --reflink=auto -a picomatch/index.js /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/picomatch// mkdir -p /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/picomatch/lib cp --reflink=auto -a picomatch/lib/scan.js /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/picomatch/lib/ cp --reflink=auto -a picomatch/lib/constants.js /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/picomatch/lib/ cp --reflink=auto -a picomatch/lib/parse.js /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/picomatch/lib/ cp --reflink=auto -a picomatch/lib/utils.js /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/picomatch/lib/ cp --reflink=auto -a picomatch/lib/picomatch.js /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/picomatch/lib/ cp --reflink=auto -a picomatch/package.json /build/node-anymatch-nv9JUW/node-anymatch-3.1.1\+-2.2.2/debian/node-anymatch//usr/share/nodejs/picomatch// debian/rules override_dh_installdocs make[1]: Entering directory '/build/node-anymatch-nv9JUW/node-anymatch-3.1.1+-2.2.2' dh_installdocs mkdir -p debian/node-anymatch/usr/share/doc/node-picomatch cp picomatch/*.md debian/node-anymatch/usr/share/doc/node-picomatch/ ln -s ../node-anymatch/changelog.Debian.gz debian/node-anymatch/usr/share/doc/node-picomatch/ make[1]: Leaving directory '/build/node-anymatch-nv9JUW/node-anymatch-3.1.1+-2.2.2' dh_installchangelogs -i dh_perl -i dh_link -i dh_strip_nondeterminism -i dh_compress -i dh_fixperms -i dh_missing -i dh_installdeb -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i dpkg-deb: building package 'node-anymatch' in '../node-anymatch_3.1.1+~2.2.2-1_all.deb'. dpkg-genbuildinfo --build=all dpkg-genchanges --build=all >../node-anymatch_3.1.1+~2.2.2-1_all.changes dpkg-genchanges: info: binary-only arch-indep upload (source code and arch-specific packages not included) dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: running special hook: sync-out /build/node-anymatch-nv9JUW /tmp/node-anymatch-3.1.1+~2.2.2-1elrd1ilv I: cleaning package lists and apt cache... I: creating tarball... I: done I: removing tempdir /tmp/mmdebstrap.vqJ5bg3ale... I: success in 307.0884 seconds md5: node-anymatch_3.1.1+~2.2.2-1_all.deb: OK sha1: node-anymatch_3.1.1+~2.2.2-1_all.deb: OK sha256: node-anymatch_3.1.1+~2.2.2-1_all.deb: OK Checksums: OK