Input buildinfo: https://buildinfos.debian.net/buildinfo-pool/n/node-anymatch/node-anymatch_3.1.2+~cs4.5.6-1_all.buildinfo Use metasnap for getting required timestamps New buildinfo file: /tmp/node-anymatch-3.1.2+~cs4.5.6-1rhf5d_5b/node-anymatch_3.1.2+~cs4.5.6-1_all.buildinfo Get source package info: node-anymatch=3.1.2+~cs4.5.6-1 Source URL: http://snapshot.notset.fr/mr/package/node-anymatch/3.1.2+~cs4.5.6-1/srcfiles?fileinfo=1 env -i PATH=/usr/sbin:/usr/bin:/sbin:/bin TMPDIR=/tmp mmdebstrap --arch=amd64 --include=autoconf=2.71-2 automake=1:1.16.4-1 autopoint=0.21-4 autotools-dev=20180224.1+nmu1 base-files=12 base-passwd=3.5.51 bash=5.1-3+b1 binutils=2.37-4 binutils-common=2.37-4 binutils-x86-64-linux-gnu=2.37-4 bsdextrautils=2.37.2-1 bsdutils=1:2.37.2-1 build-essential=12.9 bzip2=1.0.8-4 ca-certificates=20210119 coreutils=8.32-4+b1 cpp=4:10.2.1-1 cpp-10=10.3.0-7 dash=0.5.11+git20210120+802ebd4-1 debconf=1.5.77 debhelper=13.4.1 debianutils=5.4-3 dh-autoreconf=20 dh-strip-nondeterminism=1.12.0-1 diffutils=1:3.7-5 dpkg=1.20.9 dpkg-dev=1.20.9 dwz=0.14-1 file=1:5.39-3 findutils=4.8.0-1 g++=4:10.2.1-1 g++-10=10.3.0-7 gcc=4:10.2.1-1 gcc-10=10.3.0-7 gcc-10-base=10.3.0-7 gcc-11-base=11.2.0-3 gettext=0.21-4 gettext-base=0.21-4 grep=3.6-1 groff-base=1.22.4-6 gzip=1.10-4 hostname=3.23 init-system-helpers=1.60 intltool-debian=0.35.0+20060710.5 libacl1=2.2.53-10 libarchive-zip-perl=1.68-1 libarray-unique-perl=0.08-2.1 libasan6=11.2.0-3 libatomic1=11.2.0-3 libattr1=1:2.4.48-6 libaudit-common=1:3.0.5-1 libaudit1=1:3.0.5-1 libbinutils=2.37-4 libblkid1=2.37.2-1 libbrotli1=1.0.9-2+b2 libbz2-1.0=1.0.8-4 libc-ares2=1.17.2-1 libc-bin=2.31-17 libc-dev-bin=2.31-17 libc6=2.31-17 libc6-dev=2.31-17 libcap-ng0=0.7.9-2.2+b1 libcc1-0=11.2.0-3 libclass-accessor-perl=0.51-1 libcom-err2=1.46.4-1 libcrypt-dev=1:4.4.25-1 libcrypt1=1:4.4.25-1 libctf-nobfd0=2.37-4 libctf0=2.37-4 libdb5.3=5.3.28+dfsg1-0.8 libdebconfclient0=0.260 libdebhelper-perl=13.4.1 libdebian-copyright-perl=0.2-4 libdeflate0=1.7-2 libdpkg-perl=1.20.9 libelf1=0.185-2 libencode-locale-perl=1.05-1.1 liberror-perl=0.17029-1 libexporter-lite-perl=0.08-1 libffi7=3.3-6 libfile-listing-perl=6.14-1 libfile-stripnondeterminism-perl=1.12.0-1 libgcc-10-dev=10.3.0-7 libgcc-s1=11.2.0-3 libgcrypt20=1.8.7-6 libgdbm-compat4=1.19-2 libgdbm6=1.19-2 libgdk-pixbuf-2.0-0=2.42.6+dfsg-2 libgdk-pixbuf2.0-common=2.42.6+dfsg-2 libglib2.0-0=2.68.4-1 libgmp10=2:6.2.1+dfsg-1 libgomp1=11.2.0-3 libgpg-error0=1.42-3 libgssapi-krb5-2=1.18.3-6 libhtml-parser-perl=3.76-1 libhtml-tagset-perl=3.20-4 libhtml-tree-perl=5.07-2 libhttp-cookies-perl=6.10-1 libhttp-date-perl=6.05-1 libhttp-message-perl=6.29-1 libhttp-negotiate-perl=6.01-1 libicu67=67.1-7 libio-html-perl=1.004-2 libio-pty-perl=1:1.15-2 libio-socket-ssl-perl=2.072-1 libio-stringy-perl=2.111-3 libipc-run-perl=20200505.0-1 libisl23=0.23-1 libitm1=11.2.0-3 libjbig0=2.1-3.1+b2 libjpeg62-turbo=1:2.0.6-4 libjs-inherits=2.0.4-2 libjs-sprintf-js=1.1.2+ds1-2 libjson-perl=4.03000-1 libk5crypto3=1.18.3-6 libkeyutils1=1.6.1-2 libkrb5-3=1.18.3-6 libkrb5support0=1.18.3-6 liblsan0=11.2.0-3 liblwp-mediatypes-perl=6.04-1 liblwp-protocol-https-perl=6.10-1 liblz4-1=1.9.3-2 liblzma5=5.2.5-2 libmagic-mgc=1:5.39-3 libmagic1=1:5.39-3 libmount1=2.37.2-1 libmpc3=1.2.0-1 libmpfr6=4.1.0-3 libnet-http-perl=6.20-1 libnet-ssleay-perl=1.88-3+b1 libnghttp2-14=1.43.0-1 libnode72=12.22.5~dfsg-2 libnotify-bin=0.7.9-3 libnotify4=0.7.9-3 libnsl-dev=1.3.0-2 libnsl2=1.3.0-2 libpam-modules=1.4.0-9 libpam-modules-bin=1.4.0-9 libpam-runtime=1.4.0-9 libpam0g=1.4.0-9 libparse-debcontrol-perl=2.005-4.1 libpcre2-8-0=10.36-2 libpcre3=2:8.39-13 libperl5.32=5.32.1-5 libpipeline1=1.5.3-1 libpng16-16=1.6.37-3 libquadmath0=11.2.0-3 libseccomp2=2.5.1-1 libselinux1=3.1-3 libsigsegv2=2.13-1 libsmartcols1=2.37.2-1 libssl1.1=1.1.1l-1 libstdc++-10-dev=10.3.0-7 libstdc++6=11.2.0-3 libsub-name-perl=0.26-1+b1 libsub-override-perl=0.09-2 libsystemd0=247.9-1 libtie-ixhash-perl=1.23-2.1 libtiff5=4.2.0-1 libtimedate-perl=2.3300-2 libtinfo6=6.2+20201114-2 libtirpc-common=1.3.2-2 libtirpc-dev=1.3.2-2 libtirpc3=1.3.2-2 libtool=2.4.6-15 libtry-tiny-perl=0.30-1 libtsan0=11.2.0-3 libubsan1=11.2.0-3 libuchardet0=0.0.7-1 libudev1=247.9-1 libunistring2=0.9.10-6 liburi-perl=5.08-1 libuuid1=2.37.2-1 libuv1=1.40.0-2 libwebp6=0.6.1-2.1 libwww-perl=6.53-1 libwww-robotrules-perl=6.02-1 libxml2=2.9.10+dfsg-6.7 libzstd1=1.4.8+dfsg-2.1 linux-libc-dev=5.10.46-4 login=1:4.8.1-1 lsb-base=11.1.0 m4=1.4.18-5 make=4.3-4.1 man-db=2.9.4-2 mawk=1.3.4.20200120-2 mocha=9.1.0+ds1+~cs30.3.33-2 ncurses-base=6.2+20201114-2 ncurses-bin=6.2+20201114-2 netbase=6.3 node-ansi-colors=4.1.1-2 node-ansi-regex=5.0.0-2 node-ansi-styles=4.2.1-1 node-anymatch=3.1.1+~2.2.2-1 node-argparse=2.0.1-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.2.0-1 node-brace-expansion=2.0.0-1 node-braces=3.0.2+~3.0.0-1 node-browser-stdout=1.3.1-3 node-camelcase=6.2.0-2 node-chalk=4.1.0-1 node-chokidar=3.4.3-3 node-ci-info=3.2.0+~cs4.2.0-3 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.1.1-1 node-debug=4.3.1+~cs4.1.5-1 node-decamelize=4.0.0-1 node-defaults=1.0.3-2 node-diff=4.0.2~dfsg-2 node-end-of-stream=1.4.4-1 node-escape-string-regexp=4.0.0-1 node-esprima=4.0.1+ds+~4.0.2-2 node-execa=4.1.0+dfsg+~cs19.3.6-5 node-fill-range=7.0.1-3 node-find-up=5.0.0-1 node-fs.realpath=1.0.0-1.1 node-get-caller-file=1.0.2-1.1 node-get-stream=6.0.0-1 node-glob=7.1.7+~cs7.5.19-1 node-glob-parent=5.1.1+~5.1.0-2 node-graceful-fs=4.2.4+repack-1 node-growl=1.10.5-2 node-has-flag=4.0.0-1 node-he=1.2.0-2 node-inflight=1.0.6-1.1 node-inherits=2.0.4-2 node-invert-kv=3.0.1-1 node-is-binary-path=2.1.0-2 node-is-buffer=2.0.5-1 node-is-extglob=2.1.1-2 node-is-glob=4.0.1-1 node-is-number=7.0.0-1.1 node-is-plain-obj=3.0.0-1 node-is-stream=2.0.0-1 node-isexe=2.0.0-5 node-js-yaml=3.14.1+dfsg+~3.12.6-2 node-kind-of=6.0.3+dfsg-1 node-lcid=3.1.1-1 node-locate-path=6.0.0-1 node-mem=1.1.0-1.1 node-merge-stream=2.0.0+~1.1.2-1 node-micromatch=4.0.2+repack+~4.0.1-1 node-mimic-fn=3.1.0-1 node-minimatch=3.0.4+~3.0.3-1 node-ms=2.1.3+~cs0.7.31-1 node-normalize-path=3.0.0-2 node-npm-run-path=2.0.2-3 node-once=1.4.0-3 node-os-locale=5.0.0-1 node-p-limit=3.1.0+~cs2.3.0-1 node-p-locate=5.0.0-1 node-path-dirname=1.0.2-1.1 node-path-exists=4.0.0-2 node-path-is-absolute=2.0.0-1 node-pump=3.0.0-4 node-randombytes=2.1.0-1 node-readdirp=3.5.0-2 node-repeat-string=1.6.1-2 node-require-directory=2.1.1-1.1 node-require-main-filename=2.0.0-1 node-safe-buffer=5.2.1+~cs2.1.2-1 node-serialize-javascript=5.0.1-2 node-set-blocking=2.0.0-1.1 node-set-immediate-shim=2.0.0-1 node-shebang-command=1.2.0-1.1 node-shebang-regex=3.0.0-1 node-signal-exit=3.0.3-1 node-sprintf-js=1.1.2+ds1-2 node-string-width=4.2.0-1 node-strip-ansi=6.0.0-2 node-strip-json-comments=4.0.0-2 node-supports-color=8.1.0+~7.2.0-1 node-to-regex-range=5.0.1-4 node-wcwidth.js=1.0.0-1.1 node-which=2.0.2+~cs1.3.2-1 node-which-module=2.0.0-2 node-wide-align=1.1.3-2 node-wrap-ansi=4.0.0-3 node-wrappy=1.0.2-1.1 node-y18n=4.0.0-4 node-yargs=15.3.1+repack-2 node-yargs-parser=18.1.3+~15.0.0-1 nodejs=12.22.5~dfsg-2 openssl=1.1.1l-1 patch=2.7.6-7 perl=5.32.1-5 perl-base=5.32.1-5 perl-modules-5.32=5.32.1-5 perl-openssl-defaults=5 pkg-js-tools=0.9.65 po-debconf=1.0.21+nmu1 rpcsvc-proto=1.4.2-4 sed=4.7-1 sensible-utils=0.0.16 shared-mime-info=2.0-1 sysvinit-utils=2.96-7 tar=1.34+dfsg-1 util-linux=2.37.2-1 xz-utils=5.2.5-2 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/20210831T024515Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210831T024515Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20210829T145040Z/ unstable main deb http://snapshot.notset.fr/archive/debian/20210826T025527Z/ 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.2+~cs4.5.6-1 && mkdir -p /build/node-anymatch-NQtWZK && dpkg-source --no-check -x /*.dsc /build/node-anymatch-NQtWZK/node-anymatch-3.1.2+-cs4.5.6 && chown -R builduser:builduser /build/node-anymatch-NQtWZK" --customize-hook=chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/node-anymatch-NQtWZK/node-anymatch-3.1.2+-cs4.5.6 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" LC_COLLATE="C.UTF-8" SOURCE_DATE_EPOCH="1630222651" dpkg-buildpackage -uc -a amd64 --build=all" --customize-hook=sync-out /build/node-anymatch-NQtWZK /tmp/node-anymatch-3.1.2+~cs4.5.6-1rhf5d_5b bookworm /dev/null deb http://snapshot.notset.fr/archive/debian/20210826T025527Z 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.IofA6gdh2p 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.IofA6gdh2p Reading package lists... Building dependency tree... util-linux is already the newest version (2.37.2-1). The following NEW packages will be installed: fakeroot libfakeroot 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 134 kB of archives. After this operation, 397 kB of additional disk space will be used. Get:1 http://snapshot.notset.fr/archive/debian/20210826T025527Z unstable/main amd64 libfakeroot amd64 1.25.3-1.1 [47.0 kB] Get:2 http://snapshot.notset.fr/archive/debian/20210826T025527Z unstable/main amd64 fakeroot amd64 1.25.3-1.1 [87.0 kB] debconf: delaying package configuration, since apt-utils is not installed Fetched 134 kB in 0s (1017 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 ... 4670 files and directories currently installed.) Preparing to unpack .../libfakeroot_1.25.3-1.1_amd64.deb ... Unpacking libfakeroot:amd64 (1.25.3-1.1) ... Selecting previously unselected package fakeroot. Preparing to unpack .../fakeroot_1.25.3-1.1_amd64.deb ... Unpacking fakeroot (1.25.3-1.1) ... Setting up libfakeroot:amd64 (1.25.3-1.1) ... Setting up fakeroot (1.25.3-1.1) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode Processing triggers for libc-bin (2.31-17) ... 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/20210831T024515Z/ bookworm main deb-src http://snapshot.notset.fr/archive/debian/20210831T024515Z/ bookworm main deb http://snapshot.notset.fr/archive/debian/20210829T145040Z/ unstable main deb http://snapshot.notset.fr/archive/debian/20210826T025527Z/ unstable main' >> /etc/apt/sources.list && apt-get update"' exec /tmp/mmdebstrap.IofA6gdh2p Get:1 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm InRelease [112 kB] Get:2 http://snapshot.notset.fr/archive/debian/20210829T145040Z unstable InRelease [165 kB] Hit:3 http://snapshot.notset.fr/archive/debian/20210826T025527Z unstable InRelease Ign:4 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main Sources Ign:5 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main amd64 Packages Ign:4 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main Sources Ign:5 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main amd64 Packages Ign:4 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main Sources Ign:5 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main amd64 Packages Get:4 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main Sources [11.6 MB] Get:5 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main amd64 Packages [11.3 MB] Ign:6 http://snapshot.notset.fr/archive/debian/20210829T145040Z unstable/main amd64 Packages Err:6 http://snapshot.notset.fr/archive/debian/20210829T145040Z unstable/main amd64 Packages 404 Not Found [IP: 10.13.0.253 80] Ign:6 http://snapshot.notset.fr/archive/debian/20210829T145040Z unstable/main amd64 Packages Get:6 http://snapshot.notset.fr/archive/debian/20210829T145040Z unstable/main amd64 Packages [11.9 MB] Fetched 35.1 MB in 29s (1213 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.IofA6gdh2p I: running --customize-hook in shell: sh -c 'chroot "$1" env sh -c "apt-get source --only-source -d node-anymatch=3.1.2+~cs4.5.6-1 && mkdir -p /build/node-anymatch-NQtWZK && dpkg-source --no-check -x /*.dsc /build/node-anymatch-NQtWZK/node-anymatch-3.1.2+-cs4.5.6 && chown -R builduser:builduser /build/node-anymatch-NQtWZK"' exec /tmp/mmdebstrap.IofA6gdh2p 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 118 kB of source archives. Get:1 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main node-anymatch 3.1.2+~cs4.5.6-1 (dsc) [2827 B] Get:2 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main node-anymatch 3.1.2+~cs4.5.6-1 (tar) [99.5 kB] Get:3 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main node-anymatch 3.1.2+~cs4.5.6-1 (tar) [5799 B] Get:4 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main node-anymatch 3.1.2+~cs4.5.6-1 (tar) [5708 B] Get:5 http://snapshot.notset.fr/archive/debian/20210831T024515Z bookworm/main node-anymatch 3.1.2+~cs4.5.6-1 (diff) [4060 B] Fetched 118 kB in 0s (628 kB/s) Download complete and in download only mode W: Download is performed unsandboxed as root as file 'node-anymatch_3.1.2+~cs4.5.6-1.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) dpkg-source: info: extracting node-anymatch in /build/node-anymatch-NQtWZK/node-anymatch-3.1.2+-cs4.5.6 dpkg-source: info: unpacking node-anymatch_3.1.2+~cs4.5.6.orig.tar.gz dpkg-source: info: unpacking node-anymatch_3.1.2+~cs4.5.6.orig-picomatch.tar.gz dpkg-source: info: unpacking node-anymatch_3.1.2+~cs4.5.6.orig-types-picomatch.tar.gz dpkg-source: info: unpacking node-anymatch_3.1.2+~cs4.5.6-1.debian.tar.xz I: running --customize-hook in shell: sh -c 'chroot "$1" env --unset=TMPDIR runuser builduser -c "cd /build/node-anymatch-NQtWZK/node-anymatch-3.1.2+-cs4.5.6 && env DEB_BUILD_OPTIONS="parallel=4" LC_ALL="C.UTF-8" LC_COLLATE="C.UTF-8" SOURCE_DATE_EPOCH="1630222651" dpkg-buildpackage -uc -a amd64 --build=all"' exec /tmp/mmdebstrap.IofA6gdh2p dpkg-buildpackage: info: source package node-anymatch dpkg-buildpackage: info: source version 3.1.2+~cs4.5.6-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Yadd dpkg-source --before-build . debian/rules clean dh clean dh_auto_clean --buildsystem=nodejs rm -rf ./node_modules/.cache rm -rf picomatch/node_modules/.cache rm -rf types-picomatch/node_modules/.cache dh_clean debian/rules binary-indep dh binary-indep dh_update_autotools_config -i dh_autoreconf -i dh_auto_configure --buildsystem=nodejs -i mkdir node_modules ln -s ../picomatch node_modules/picomatch mkdir -p node_modules/\@types ln -s ../../types-picomatch node_modules/\@types/picomatch dh_auto_build --buildsystem=nodejs -i No build command found, searching known files No build command found, searching known files No build command found, searching known files dh_auto_test --buildsystem=nodejs -i ln -s ../. node_modules/anymatch /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 ✔ 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 common glob patterns ✔ should match files with the given extension ✔ should match wildcards ✔ should match globstars ✔ issue #23 ✔ issue #24 - should match zero or more directories ✔ 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 state negatedExtglob ✔ should return true ✔ should return false 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 detect negated extglobs at the begining ✔ should not detect negated extglobs in the middle ✔ 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 ✔ 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 ✔ 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 ✔ 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)" ✔ "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: (58ms) other ✔ should support backtracking in alternation matches ✔ should support exclusions ✔ valid numbers ✔ check extended globbing in pattern removal ✔ 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 *(...) ✔ 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 ✔ 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 stars in 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 ✔ 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 ✔ 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 ✔ 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 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 (*) ✔ should match one or more directories with a globstar ✔ should match one or more characters ✔ should match one or zero characters ✔ should respect trailing slashes on paterns ✔ should match a literal star when escaped ✔ should match file paths ✔ should match paths with leading `./` when pattern has `./` ✔ should match leading slashes ✔ 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 (**) ✔ 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 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 ✔ 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 1959 passing (2s) + 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 ✔ should not match negated matchers if positive matchers do not match 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 26 passing (39ms) + test != Removing node_modules/anymatch create-stamp debian/debhelper-build-stamp dh_prep -i dh_auto_install --buildsystem=nodejs -i dh_auto_install: warning: ### Missing ./build/config.gypi, skipping Found "files" field in ./package.json, using it mkdir -p /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/anymatch/ cp --reflink=auto -a ./index.js /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/anymatch// cp --reflink=auto -a ./index.d.ts /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/anymatch// cp --reflink=auto -a ./package.json /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/anymatch// cp --reflink=auto -a ./package.json /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/anymatch// dh_auto_install: warning: ### Missing picomatch/build/config.gypi, skipping Found "files" field in picomatch/package.json, using it mkdir -p /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/picomatch/ cp --reflink=auto -a picomatch/index.js /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/picomatch// mkdir -p /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/picomatch/lib cp --reflink=auto -a picomatch/lib/constants.js /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/picomatch/lib/ cp --reflink=auto -a picomatch/lib/parse.js /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/picomatch/lib/ cp --reflink=auto -a picomatch/lib/picomatch.js /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/picomatch/lib/ cp --reflink=auto -a picomatch/lib/scan.js /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/picomatch/lib/ cp --reflink=auto -a picomatch/lib/utils.js /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/picomatch/lib/ cp --reflink=auto -a picomatch/package.json /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/picomatch// cp --reflink=auto -a picomatch/package.json /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/picomatch// dh_auto_install: warning: ### Missing types-picomatch/build/config.gypi, skipping No "files" field in types-picomatch/package.json, install all files mkdir -p /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/\@types/picomatch/ cp --reflink=auto -a types-picomatch/index.d.ts /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/\@types/picomatch// cp --reflink=auto -a types-picomatch/package.json /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/\@types/picomatch// mkdir -p /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/\@types/picomatch/lib cp --reflink=auto -a types-picomatch/lib/constants.d.ts /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/\@types/picomatch/lib/ cp --reflink=auto -a types-picomatch/lib/parse.d.ts /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/\@types/picomatch/lib/ cp --reflink=auto -a types-picomatch/lib/picomatch.d.ts /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/\@types/picomatch/lib/ cp --reflink=auto -a types-picomatch/lib/scan.d.ts /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/\@types/picomatch/lib/ cp --reflink=auto -a types-picomatch/package.json /build/node-anymatch-NQtWZK/node-anymatch-3.1.2\+-cs4.5.6/debian/node-anymatch//usr/share/nodejs/\@types/picomatch// Populate ${nodejs:Provides}: + node-picomatch (= 2.3.0) + node-types-picomatch (= 2.2.6) Set ${nodejs:Version} to 12.22.5~dfsg debian/rules override_dh_install make[1]: Entering directory '/build/node-anymatch-NQtWZK/node-anymatch-3.1.2+-cs4.5.6' dh_install find debian/node-anymatch/usr/share/nodejs/@types/picomatch -type f -exec chmod -x '{}' \; make[1]: Leaving directory '/build/node-anymatch-NQtWZK/node-anymatch-3.1.2+-cs4.5.6' debian/rules override_dh_installdocs make[1]: Entering directory '/build/node-anymatch-NQtWZK/node-anymatch-3.1.2+-cs4.5.6' 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-NQtWZK/node-anymatch-3.1.2+-cs4.5.6' 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 dpkg-gencontrol: warning: package node-anymatch: substitution variable ${nodejs:Version} unused, but is defined dh_md5sums -i dh_builddeb -i dpkg-deb: building package 'node-anymatch' in '../node-anymatch_3.1.2+~cs4.5.6-1_all.deb'. dpkg-genbuildinfo --build=all dpkg-genchanges --build=all >../node-anymatch_3.1.2+~cs4.5.6-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-NQtWZK /tmp/node-anymatch-3.1.2+~cs4.5.6-1rhf5d_5b I: cleaning package lists and apt cache... I: creating tarball... I: done I: removing tempdir /tmp/mmdebstrap.IofA6gdh2p... I: success in 492.7711 seconds md5: node-anymatch_3.1.2+~cs4.5.6-1_all.deb: OK sha1: node-anymatch_3.1.2+~cs4.5.6-1_all.deb: OK sha256: node-anymatch_3.1.2+~cs4.5.6-1_all.deb: OK Checksums: OK