Re-org and re-named some stuff...
parent
5eb73fa7d1
commit
8d673c08fc
|
@ -61,6 +61,8 @@ ALL = jerasure_01 \
|
|||
reed_sol_02 \
|
||||
reed_sol_03 \
|
||||
reed_sol_04 \
|
||||
reed_sol_test_gf \
|
||||
reed_sol_time_gf \
|
||||
cauchy_01 \
|
||||
cauchy_02 \
|
||||
cauchy_03 \
|
||||
|
@ -186,3 +188,11 @@ encoder: encoder.o galois.o jerasure.o liberation.o reed_sol.o cauchy.o
|
|||
decoder.o: galois.h liberation.h jerasure.h reed_sol.h cauchy.h
|
||||
decoder: decoder.o galois.o jerasure.o liberation.o reed_sol.o cauchy.o
|
||||
$(CC) $(CFLAGS) -o decoder decoder.o liberation.o jerasure.o galois.o reed_sol.o cauchy.o -lgf_complete
|
||||
|
||||
reed_sol_test_gf.o: galois.h reed_sol.h jerasure.h
|
||||
reed_sol_test_gf: reed_sol_test_gf.o galois.o ${LIBDIR}/gf_complete.a jerasure.o reed_sol.o
|
||||
$(CC) $(CFLAGS) -o reed_sol_test_gf reed_sol_test_gf.o reed_sol.o jerasure.o galois.o ${LIBDIR}/gf_complete.a
|
||||
|
||||
reed_sol_time_gf.o: galois.h reed_sol.h jerasure.h
|
||||
reed_sol_time_gf: reed_sol_time_gf.o galois.o ${LIBDIR}/gf_complete.a jerasure.o reed_sol.o
|
||||
$(CC) $(CFLAGS) -o reed_sol_time_gf reed_sol_time_gf.o reed_sol.o jerasure.o galois.o ${LIBDIR}/gf_complete.a
|
||||
|
|
|
@ -45,11 +45,6 @@ POSSIBILITY OF SUCH DAMAGE.
|
|||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
revised by S. Simmerman
|
||||
2/25/08
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
@ -74,15 +69,17 @@ static void free16(void *ptr) {
|
|||
|
||||
usage(char *s)
|
||||
{
|
||||
fprintf(stderr, "usage: reed_sol_test_01 k m w [additional GF args]- Tests Reed-Solomon in GF(2^w).\n");
|
||||
fprintf(stderr, "usage: reed_sol_test_gf k m w [additional GF args]- Tests Reed-Solomon in GF(2^w).\n");
|
||||
fprintf(stderr, " \n");
|
||||
fprintf(stderr, " w must be 8, 16 or 32. k+m must be <= 2^w. It sets up a classic\n");
|
||||
fprintf(stderr, " Vandermonde-based distribution matrix and encodes k devices of\n");
|
||||
fprintf(stderr, " w must be 8, 16 or 32. k+m must be <= 2^w.\n");
|
||||
fprintf(stderr, " See the README for information on the additional GF args.\n");
|
||||
fprintf(stderr, " Set up a Vandermonde-based distribution matrix and encodes k devices of\n");
|
||||
fprintf(stderr, " %d bytes each with it. Then it decodes.\n", BUFSIZE);
|
||||
fprintf(stderr, " \n");
|
||||
fprintf(stderr, "This tests: jerasure_matrix_encode()\n");
|
||||
fprintf(stderr, " jerasure_matrix_decode()\n");
|
||||
fprintf(stderr, " jerasure_print_matrix()\n");
|
||||
fprintf(stderr, " galois_change_technique()\n");
|
||||
fprintf(stderr, " reed_sol_vandermonde_coding_matrix()\n");
|
||||
if (s != NULL) fprintf(stderr, "%s\n", s);
|
||||
exit(1);
|
|
@ -46,10 +46,6 @@ POSSIBILITY OF SUCH DAMAGE.
|
|||
*/
|
||||
|
||||
|
||||
/*
|
||||
revised by S. Simmerman
|
||||
2/25/08
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
@ -92,15 +88,17 @@ timer_split (const double *t)
|
|||
|
||||
usage(char *s)
|
||||
{
|
||||
fprintf(stderr, "usage: reed_sol_test_01 k m w iterations bufsize [additional GF args]- Tests Reed-Solomon in GF(2^w).\n");
|
||||
fprintf(stderr, "usage: reed_sol_test_gf k m w [additional GF args]- Test and time Reed-Solomon in a particular GF(2^w).\n");
|
||||
fprintf(stderr, " \n");
|
||||
fprintf(stderr, " w must be 8, 16 or 32. k+m must be <= 2^w. It sets up a classic\n");
|
||||
fprintf(stderr, " Vandermonde-based distribution matrix and encodes k devices of\n");
|
||||
fprintf(stderr, " <bufsize> bytes each with it. Then it decodes.\n");
|
||||
fprintf(stderr, " w must be 8, 16 or 32. k+m must be <= 2^w.\n");
|
||||
fprintf(stderr, " See the README for information on the additional GF args.\n");
|
||||
fprintf(stderr, " Set up a Vandermonde-based distribution matrix and encodes k devices of\n");
|
||||
fprintf(stderr, " %d bytes each with it. Then it decodes.\n", BUFSIZE);
|
||||
fprintf(stderr, " \n");
|
||||
fprintf(stderr, "This tests: jerasure_matrix_encode()\n");
|
||||
fprintf(stderr, " jerasure_matrix_decode()\n");
|
||||
fprintf(stderr, " jerasure_print_matrix()\n");
|
||||
fprintf(stderr, " galois_change_technique()\n");
|
||||
fprintf(stderr, " reed_sol_vandermonde_coding_matrix()\n");
|
||||
if (s != NULL) fprintf(stderr, "%s\n", s);
|
||||
exit(1);
|
|
@ -2,38 +2,54 @@ GF_COMPLETE_DIR=/usr/local/bin
|
|||
GF_METHODS=${GF_COMPLETE_DIR}/gf_methods
|
||||
k=12
|
||||
m=3
|
||||
FAIL=
|
||||
|
||||
# Test all w=8
|
||||
${GF_METHODS} | awk -F: '{ if ($1 == "w=8") print $2; }' |
|
||||
while read method; do
|
||||
echo "Testing ${k} ${m} 8 ${method}"
|
||||
./reed_sol_test_01 ${k} ${m} 8 ${method}
|
||||
./reed_sol_test_gf ${k} ${m} 8 ${method}
|
||||
if [[ $? != "0" ]]; then
|
||||
echo "Failed test for ${k} ${m} 8 ${method}"
|
||||
FAIL=1
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n ${FAIL} ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Test all w=16
|
||||
${GF_METHODS} | awk -F: '{ if ($1 == "w=16") print $2; }' |
|
||||
while read method; do
|
||||
echo "Testing ${k} ${m} 16 ${method}"
|
||||
./reed_sol_test_01 ${k} ${m} 16 ${method}
|
||||
./reed_sol_test_gf ${k} ${m} 16 ${method}
|
||||
if [[ $? != "0" ]]; then
|
||||
echo "Failed test for ${k} ${m} 16 ${method}"
|
||||
FAIL=1
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n ${FAIL} ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Test all w=32
|
||||
${GF_METHODS} | awk -F: '{ if ($1 == "w=32") print $2; }' |
|
||||
while read method; do
|
||||
echo "Testing ${k} ${m} 32 ${method}"
|
||||
./reed_sol_test_01 ${k} ${m} 32 ${method}
|
||||
./reed_sol_test_gf ${k} ${m} 32 ${method}
|
||||
if [[ $? != "0" ]]; then
|
||||
echo "Failed test for ${k} ${m} 32 ${method}"
|
||||
FAIL=1
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n ${FAIL} ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Passed all tests!"
|
|
@ -3,39 +3,55 @@ GF_METHODS=${GF_COMPLETE_DIR}/gf_methods
|
|||
ITERATIONS=128
|
||||
BUFSIZE=65536
|
||||
k=12
|
||||
m=2
|
||||
m=3
|
||||
FAIL=
|
||||
|
||||
# Test all w=8
|
||||
${GF_METHODS} | awk -F: '{ if ($1 == "w=8") print $2; }' |
|
||||
while read method; do
|
||||
echo "Testing ${k} ${m} 8 ${ITERATIONS} ${BUFSIZE} ${method}"
|
||||
./reed_sol_test_02 ${k} ${m} 8 ${ITERATIONS} ${BUFSIZE} ${method}
|
||||
./reed_sol_time_gf ${k} ${m} 8 ${ITERATIONS} ${BUFSIZE} ${method}
|
||||
if [[ $? != "0" ]]; then
|
||||
echo "Failed test for ${k} ${m} 8 ${ITERATIONS} ${BUFSIZE} ${method}"
|
||||
FAIL=1
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n ${FAIL} ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Test all w=16
|
||||
${GF_METHODS} | grep -v 'TABLE' | awk -F: '{ if ($1 == "w=16") print $2; }' |
|
||||
while read method; do
|
||||
echo "Testing ${k} ${m} 16 ${ITERATIONS} ${BUFSIZE} ${method}"
|
||||
./reed_sol_test_02 ${k} ${m} 16 ${ITERATIONS} ${BUFSIZE} ${method}
|
||||
./reed_sol_time_gf ${k} ${m} 16 ${ITERATIONS} ${BUFSIZE} ${method}
|
||||
if [[ $? != "0" ]]; then
|
||||
echo "Failed test for ${k} ${m} 16 ${ITERATIONS} ${BUFSIZE} ${method}"
|
||||
FAIL=1
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n ${FAIL} ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Test all w=32
|
||||
${GF_METHODS} | awk -F: '{ if ($1 == "w=32") print $2; }' |
|
||||
while read method; do
|
||||
echo "Testing ${k} ${m} 32 ${ITERATIONS} ${BUFSIZE} ${method}"
|
||||
./reed_sol_test_02 ${k} ${m} 32 ${ITERATIONS} ${BUFSIZE} ${method}
|
||||
./reed_sol_time_gf ${k} ${m} 32 ${ITERATIONS} ${BUFSIZE} ${method}
|
||||
if [[ $? != "0" ]]; then
|
||||
echo "Failed test for ${k} ${m} 32 ${ITERATIONS} ${BUFSIZE} ${method}"
|
||||
FAIL=1
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n ${FAIL} ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Passed all tests!"
|
103
Test/makefile
103
Test/makefile
|
@ -1,103 +0,0 @@
|
|||
# Examples/makefile
|
||||
# Jerasure - A C/C++ Library for a Variety of Reed-Solomon and RAID-6 Erasure Coding Techniques
|
||||
#
|
||||
# Revision 1.2A
|
||||
# May 24, 2011
|
||||
#
|
||||
# James S. Plank
|
||||
# Department of Electrical Engineering and Computer Science
|
||||
# University of Tennessee
|
||||
# Knoxville, TN 37996
|
||||
# plank@cs.utk.edu
|
||||
#
|
||||
# Copyright (c) 2011, James S. Plank
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
#
|
||||
# - Neither the name of the University of Tennessee nor the names of its
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
||||
# WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
PREFIX=/usr/local
|
||||
BINDIR=${PREFIX}/bin
|
||||
LIBDIR=${PREFIX}/lib
|
||||
INCDIR=${PREFIX}/include
|
||||
CC = gcc
|
||||
CFLAGS = -O3 -I$(HOME)/include
|
||||
|
||||
ALL = reed_sol_test_01 reed_sol_test_02
|
||||
|
||||
all: $(ALL)
|
||||
|
||||
clean:
|
||||
rm -f core *.o $(ALL) a.out cauchy.h cauchy.c liberation.h liberation.c reed_sol.c reed_sol.h\
|
||||
jerasure.c jerasure.h galois.c galois.h
|
||||
|
||||
.SUFFIXES: .c .o
|
||||
.c.o:
|
||||
$(CC) $(CFLAGS) -c $*.c
|
||||
|
||||
liberation.h: ../liberation.h
|
||||
rm -f liberation.h ; cp ../liberation.h . ; chmod 0444 liberation.h
|
||||
|
||||
liberation.c: ../liberation.c
|
||||
rm -f liberation.c ; cp ../liberation.c . ; chmod 0444 liberation.c
|
||||
|
||||
cauchy.h: ../cauchy.h
|
||||
rm -f cauchy.h ; cp ../cauchy.h . ; chmod 0444 cauchy.h
|
||||
|
||||
cauchy.c: ../cauchy.c
|
||||
rm -f cauchy.c ; cp ../cauchy.c . ; chmod 0444 cauchy.c
|
||||
|
||||
reed_sol.h: ../reed_sol.h
|
||||
rm -f reed_sol.h ; cp ../reed_sol.h . ; chmod 0444 reed_sol.h
|
||||
|
||||
reed_sol.c: ../reed_sol.c
|
||||
rm -f reed_sol.c ; cp ../reed_sol.c . ; chmod 0444 reed_sol.c
|
||||
|
||||
jerasure.h: ../jerasure.h
|
||||
rm -f jerasure.h ; cp ../jerasure.h . ; chmod 0444 jerasure.h
|
||||
|
||||
jerasure.c: ../jerasure.c
|
||||
rm -f jerasure.c ; cp ../jerasure.c . ; chmod 0444 jerasure.c
|
||||
|
||||
galois.h: ../galois.h
|
||||
rm -f galois.h ; cp ../galois.h . ; chmod 0444 galois.h
|
||||
|
||||
galois.c: ../galois.c
|
||||
rm -f galois.c ; cp ../galois.c . ; chmod 0444 galois.c
|
||||
|
||||
galois.o ${LIBDIR}/gf_complete.a: galois.h
|
||||
jerasure.o: jerasure.h galois.h
|
||||
|
||||
reed_sol_test_01.o: galois.h reed_sol.h jerasure.h
|
||||
reed_sol_test_01: reed_sol_test_01.o galois.o ${LIBDIR}/gf_complete.a jerasure.o reed_sol.o
|
||||
$(CC) $(CFLAGS) -o reed_sol_test_01 reed_sol_test_01.o reed_sol.o jerasure.o galois.o ${LIBDIR}/gf_complete.a
|
||||
|
||||
reed_sol_test_02.o: galois.h reed_sol.h jerasure.h
|
||||
reed_sol_test_02: reed_sol_test_02.o galois.o ${LIBDIR}/gf_complete.a jerasure.o reed_sol.o
|
||||
$(CC) $(CFLAGS) -o reed_sol_test_02 reed_sol_test_02.o reed_sol.o jerasure.o galois.o ${LIBDIR}/gf_complete.a
|
Loading…
Reference in New Issue