D3030: tests: conditionalize tests based on presence of revlogs for files

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Tue Apr 3 13:54:31 EDT 2018


indygreg updated this revision to Diff 7564.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D3030?vs=7531&id=7564

REVISION DETAIL
  https://phab.mercurial-scm.org/D3030

AFFECTED FILES
  tests/hghave.py
  tests/simplestorerepo.py
  tests/test-clone.t
  tests/test-contrib-perf.t
  tests/test-convert.t
  tests/test-copy.t
  tests/test-hardlinks.t
  tests/test-http-proxy.t
  tests/test-push-warn.t
  tests/test-relink.t
  tests/test-strip.t
  tests/test-subrepo-deep-nested-change.t
  tests/test-upgrade-repo.t

CHANGE DETAILS

diff --git a/tests/test-upgrade-repo.t b/tests/test-upgrade-repo.t
--- a/tests/test-upgrade-repo.t
+++ b/tests/test-upgrade-repo.t
@@ -1,3 +1,5 @@
+#require no-reposimplestore
+
   $ cat >> $HGRCPATH << EOF
   > [extensions]
   > share =
diff --git a/tests/test-subrepo-deep-nested-change.t b/tests/test-subrepo-deep-nested-change.t
--- a/tests/test-subrepo-deep-nested-change.t
+++ b/tests/test-subrepo-deep-nested-change.t
@@ -34,6 +34,7 @@
   linking [    <=>                                        ] 4\r (no-eol) (esc)
   linking [     <=>                                       ] 5\r (no-eol) (esc)
   linking [      <=>                                      ] 6\r (no-eol) (esc)
+  linking [       <=>                                     ] 7\r (no-eol) (esc) (reposimplestore !)
                                                               \r (no-eol) (esc)
   \r (no-eol) (esc)
   updating [===========================================>] 1/1\r (no-eol) (esc)
@@ -60,6 +61,9 @@
   linking [      <=>                                      ] 6\r (no-eol) (esc)
   linking [       <=>                                     ] 7\r (no-eol) (esc)
   linking [        <=>                                    ] 8\r (no-eol) (esc)
+  linking [         <=>                                   ] 9\r (no-eol) (esc) (reposimplestore !)
+  linking [          <=>                                 ] 10\r (no-eol) (esc) (reposimplestore !)
+  linking [           <=>                                ] 11\r (no-eol) (esc) (reposimplestore !)
                                                               \r (no-eol) (esc)
   \r (no-eol) (esc)
   updating [===========================================>] 3/3\r (no-eol) (esc)
@@ -71,6 +75,7 @@
   linking [    <=>                                        ] 4\r (no-eol) (esc)
   linking [     <=>                                       ] 5\r (no-eol) (esc)
   linking [      <=>                                      ] 6\r (no-eol) (esc)
+  linking [       <=>                                     ] 7\r (no-eol) (esc) (reposimplestore !)
   updating [===========================================>] 1/1\r (no-eol) (esc)
                                                               \r (no-eol) (esc)
   updating to branch default
@@ -161,6 +166,9 @@
   linking [      <=>                                      ] 6\r (no-eol) (esc)
   linking [       <=>                                     ] 7\r (no-eol) (esc)
   linking [        <=>                                    ] 8\r (no-eol) (esc)
+  linking [         <=>                                   ] 9\r (no-eol) (esc) (reposimplestore !)
+  linking [          <=>                                 ] 10\r (no-eol) (esc) (reposimplestore !)
+  linking [           <=>                                ] 11\r (no-eol) (esc) (reposimplestore !)
                                                               \r (no-eol) (esc)
   \r (no-eol) (esc)
   updating [===========================================>] 3/3\r (no-eol) (esc)
@@ -174,15 +182,25 @@
   linking [      <=>                                      ] 6\r (no-eol) (esc)
   linking [       <=>                                     ] 7\r (no-eol) (esc)
   linking [        <=>                                    ] 8\r (no-eol) (esc)
+  linking [         <=>                                   ] 9\r (no-eol) (esc) (reposimplestore !)
+  linking [          <=>                                 ] 10\r (no-eol) (esc) (reposimplestore !)
+  linking [           <=>                                ] 11\r (no-eol) (esc) (reposimplestore !)
   updating [===========================================>] 3/3\r (no-eol) (esc)
                                                               \r (no-eol) (esc)
   \r (no-eol) (esc)
-  linking [         <=>                                   ] 1\r (no-eol) (esc)
-  linking [          <=>                                  ] 2\r (no-eol) (esc)
-  linking [           <=>                                 ] 3\r (no-eol) (esc)
-  linking [            <=>                                ] 4\r (no-eol) (esc)
-  linking [             <=>                               ] 5\r (no-eol) (esc)
-  linking [              <=>                              ] 6\r (no-eol) (esc)
+  linking [         <=>                                   ] 1\r (no-eol) (esc) (no-reposimplestore !)
+  linking [          <=>                                  ] 2\r (no-eol) (esc) (no-reposimplestore !)
+  linking [           <=>                                 ] 3\r (no-eol) (esc) (no-reposimplestore !)
+  linking [            <=>                                ] 4\r (no-eol) (esc) (no-reposimplestore !)
+  linking [             <=>                               ] 5\r (no-eol) (esc) (no-reposimplestore !)
+  linking [              <=>                              ] 6\r (no-eol) (esc) (no-reposimplestore !)
+  linking [            <=>                                ] 1\r (no-eol) (esc) (reposimplestore !)
+  linking [             <=>                               ] 2\r (no-eol) (esc) (reposimplestore !)
+  linking [              <=>                              ] 3\r (no-eol) (esc) (reposimplestore !)
+  linking [               <=>                             ] 4\r (no-eol) (esc) (reposimplestore !)
+  linking [                <=>                            ] 5\r (no-eol) (esc) (reposimplestore !)
+  linking [                 <=>                           ] 6\r (no-eol) (esc) (reposimplestore !)
+  linking [                  <=>                          ] 7\r (no-eol) (esc) (reposimplestore !)
   updating [===========================================>] 1/1\r (no-eol) (esc)
                                                               \r (no-eol) (esc)
   updating to branch default
diff --git a/tests/test-strip.t b/tests/test-strip.t
--- a/tests/test-strip.t
+++ b/tests/test-strip.t
@@ -452,6 +452,7 @@
   $ cat .hg/store/fncache | sort
   data/a.i
   data/bar.i
+
   $ hg strip tip
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved
   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)
diff --git a/tests/test-relink.t b/tests/test-relink.t
--- a/tests/test-relink.t
+++ b/tests/test-relink.t
@@ -73,6 +73,8 @@
 
 relink
 
+#if no-reposimplestore
+
   $ hg relink --debug --config progress.debug=true | fix_path
   relinking $TESTTMP/repo/.hg/store to $TESTTMP/clone/.hg/store
   tip has 2 files, estimated total number of files: 3
@@ -101,3 +103,4 @@
   $ $PYTHON arelinked.py repo/.hg/store/data/b.i clone/.hg/store/data/b.i
   repo/.hg/store/data/b.i != clone/.hg/store/data/b.i
 
+#endif
diff --git a/tests/test-push-warn.t b/tests/test-push-warn.t
--- a/tests/test-push-warn.t
+++ b/tests/test-push-warn.t
@@ -153,7 +153,7 @@
   uncompressed size of bundle content:
        352 (changelog)
        326 (manifests)
-       253  foo
+       25\d  foo (re)
   adding changesets
   adding manifests
   adding file changes
diff --git a/tests/test-http-proxy.t b/tests/test-http-proxy.t
--- a/tests/test-http-proxy.t
+++ b/tests/test-http-proxy.t
@@ -16,7 +16,8 @@
 
   $ http_proxy=http://localhost:$HGPORT1/ hg --config http_proxy.always=True clone --stream http://localhost:$HGPORT/ b
   streaming all changes
-  3 files to transfer, 303 bytes of data
+  3 files to transfer, 303 bytes of data (repodefaultstore !)
+  4 files to transfer, 330 bytes of data (reposimplestore !)
   transferred * bytes in * seconds (*/sec) (glob)
   searching for changes
   no changes found
diff --git a/tests/test-hardlinks.t b/tests/test-hardlinks.t
--- a/tests/test-hardlinks.t
+++ b/tests/test-hardlinks.t
@@ -1,4 +1,4 @@
-#require hardlink
+#require hardlink repodefaultstore
 
   $ cat > nlinks.py <<EOF
   > from __future__ import print_function
diff --git a/tests/test-copy.t b/tests/test-copy.t
--- a/tests/test-copy.t
+++ b/tests/test-copy.t
@@ -93,8 +93,10 @@
   copy: a
   copyrev: b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
 
+#if repofilerevlogs
   $ md5sum.py .hg/store/data/b.i
   44913824c8f5890ae218f9829535922e  .hg/store/data/b.i
+#endif
   $ hg cat b > bsum
   $ md5sum.py bsum
   60b725f10c9c85c70d97880dfe8191b3  bsum
diff --git a/tests/test-convert.t b/tests/test-convert.t
--- a/tests/test-convert.t
+++ b/tests/test-convert.t
@@ -516,8 +516,14 @@
 contents of fncache file:
 
   $ cat b/.hg/store/fncache | sort
-  data/a.i
-  data/b.i
+  data/a.i (repodefaultstore !)
+  data/b.i (repodefaultstore !)
+  data/a/0f3078c2d7345d887b54f7c9dab0d91bfa57fd07 (reposimplestore !)
+  data/a/4271c3e84237016935a176b6f282fde2128458b0 (reposimplestore !)
+  data/a/b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 (reposimplestore !)
+  data/a/index (reposimplestore !)
+  data/b/37d9b5d994eab34eda9c16b195ace52c7b129980 (reposimplestore !)
+  data/b/index (reposimplestore !)
 
 test bogus URL
 
diff --git a/tests/test-contrib-perf.t b/tests/test-contrib-perf.t
--- a/tests/test-contrib-perf.t
+++ b/tests/test-contrib-perf.t
@@ -158,7 +158,9 @@
   $ hg perfpathcopies 1 2
   $ hg perfrawfiles 2
   $ hg perfrevlogindex -c
+#if repofilerevlogs
   $ hg perfrevlogrevisions .hg/store/data/a.i
+#endif
   $ hg perfrevlogrevision -m 0
   $ hg perfrevlogchunks -c
   $ hg perfrevrange
diff --git a/tests/test-clone.t b/tests/test-clone.t
--- a/tests/test-clone.t
+++ b/tests/test-clone.t
@@ -28,12 +28,14 @@
 
 List files in store/data (should show a 'b.d'):
 
+#if repodefaultstore
   $ for i in .hg/store/data/*; do
   >   echo $i
   > done
   .hg/store/data/a.i
   .hg/store/data/b.d
   .hg/store/data/b.i
+#endif
 
 Trigger branchcache creation:
 
diff --git a/tests/simplestorerepo.py b/tests/simplestorerepo.py
--- a/tests/simplestorerepo.py
+++ b/tests/simplestorerepo.py
@@ -5,6 +5,11 @@
 # This software may be used and distributed according to the terms of the
 # GNU General Public License version 2 or any later version.
 
+# To use this with the test suite:
+#
+#   $ HGREPOFEATURES="simplestore" ./run-tests.py \
+#       --extra-config-opt extensions.simplestore=`pwd`/simplestorerepo.py
+
 from __future__ import absolute_import
 
 from mercurial.i18n import _
diff --git a/tests/hghave.py b/tests/hghave.py
--- a/tests/hghave.py
+++ b/tests/hghave.py
@@ -717,3 +717,52 @@
         return bdiff.xdiffblocks(b'', b'') == [(0, 0, 0, 0)]
     except (ImportError, AttributeError):
         return False
+
+def getrepofeatures():
+    """Obtain set of repository features in use.
+
+    HGREPOFEATURES can be used to define or remove features. It contains
+    a space-delimited list of feature strings. Strings beginning with ``-``
+    mean to remove.
+    """
+    # Default list provided by core.
+    features = {
+        'defaultstore',
+        'filerevlogs',
+    }
+
+    # Features that imply other features.
+    implies = {
+        'simplestore': ['-defaultstore', '-filerevlogs'],
+    }
+
+    for override in os.environ.get('HGREPOFEATURES', '').split(' '):
+        if not override:
+            continue
+
+        if override.startswith('-'):
+            if override[1:] in features:
+                features.remove(override[1:])
+        else:
+            features.add(override)
+
+            for imply in implies.get(override, []):
+                if imply.startswith('-'):
+                    if imply[1:] in features:
+                        features.remove(imply[1:])
+                else:
+                    features.add(imply)
+
+    return features
+
+ at check('repofilerevlogs', 'repository using revlogs for file storage')
+def has_repofilerevlogs():
+    return 'filerevlogs' in getrepofeatures()
+
+ at check('repodefaultstore', 'repository using the default revlog store')
+def has_repodefaultstore():
+    return 'defaultstore' in getrepofeatures()
+
+ at check('reposimplestore', 'repository using simple storage extension')
+def has_reposimplestore():
+    return 'simplestore' in getrepofeatures()



To: indygreg, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list