erasure-code: workunit to check for encoding regression

Clone the archive of encoded objects and decode all archived objects, up
to and including the current ceph version.

http://tracker.ceph.com/issues/9420 Refs: #9420

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
This commit is contained in:
Loic Dachary 2014-09-13 13:36:09 +02:00 committed by Loic Dachary
parent f5901303db
commit 7638b15f23
3 changed files with 43 additions and 0 deletions

4
.gitmodules vendored
View File

@ -19,3 +19,7 @@
path = src/rocksdb
url = git://github.com/ceph/rocksdb
ignore = dirty
[submodule "ceph-erasure-code-corpus"]
path = ceph-erasure-code-corpus
url = https://github.com/ceph/ceph-erasure-code-corpus.git

@ -0,0 +1 @@
Subproject commit f1f95a1de9dea91b0f8830a01e8b8673e3f241e1

View File

@ -0,0 +1,38 @@
#!/bin/bash -ex
#
# Copyright (C) 2014 Red Hat <contact@redhat.com>
#
# Author: Loic Dachary <loic@dachary.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Library Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library Public License for more details.
#
: ${CORPUS:=https://github.com/dachary/ceph-erasure-code-corpus.git}
: ${DIRECTORY:=../ceph-erasure-code-corpus}
# when running from sources, the current directory must have precedence
export PATH=:$PATH
if ! test -d $DIRECTORY ; then
git clone $CORPUS $DIRECTORY
fi
my_version=v$(ceph --version | cut -f3 -d ' ')
all_versions=$((ls -d $DIRECTORY/v* ; echo $DIRECTORY/$my_version ) | sort)
for version in $all_versions ; do
if test -d $version ; then
$version/non-regression.sh
fi
if test $version = $DIRECTORY/$my_version ; then
break
fi
done