test list

This commit is contained in:
anil
2020-08-19 15:07:37 +02:00
parent bfcd2aacc5
commit cb293de686
242 changed files with 370216 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
## Running `lighttpd` bugs
After running the container you need to follow the following
steps to prepare `SOSRepair` for running:
1. Copy `makeout`, `compile.sh`, `test.sh` and `tests-list` to
the container's `/experiment/`.
2. Copy `settings.py` to the container's `/opt/sosrepair/sosrepair`.
3. In the container, reconfigure the project with coverage flags:
```
cd /experiment/src
./configure "CFLAGS=-fprofile-arcs -ftest-coverage" "CXXFLAGS=-fprofile-arcs -ftest-coverage" "LDFLAGS=-lgcov" --with-ldap --with-bzip2 --with-openssl --with-gdbm --with-memcache --with-webdav-props --with-webdav-locks
make clean
make
```
4. Run `/opt/sosrepair/prepare/setup.sh`.
5. Set proper permissions by running `sudo chmod -R 777 /opt/sosrepair/sosrepair`.
6. Setup environment variables:
```
export PYTHONPATH="/opt/sosrepair/bindings:${PYTHONPATH}"
export CPATH=":/opt/sosrepair/include"
export PATH="/opt/sosrepair/bin:$PATH"
```
Pay attention that `lighttpd` tests occupy a single port. Therefore, you can only
run on a single bug at a time if you're sharing ports. Otherwise, the tests will
fail.
+8
View File
@@ -0,0 +1,8 @@
#!/bin/bash
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
cd $DIR/src
#make clean
(make && exit 0)|| exit 1
+10
View File
@@ -0,0 +1,10 @@
#!/bin/bash
CONTAINER=$1
BUG=$2
docker cp compile.sh $CONTAINER:/experiment/
docker cp $BUG/test.sh $CONTAINER:/experiment/
docker cp $BUG/tests-list.txt $CONTAINER:/experiment/
docker cp $BUG/settings.py $CONTAINER:/opt/sosrepair/sosrepair/
@@ -0,0 +1,86 @@
"""
This file includes all the settings that could be modified for running SearchRepair/SOSRepair
* LIBCLANG_PATH: The path to libclang build. It should be either a .so or .dylib file.
* GENERATE_DB_PATH: The path where the DB should be built from. SR will enumerate all C files in this path to build the
DB
* Z3_COMMAND: The z3 command on this machine.
* LARGEST_SNIPPET: The maximum number of lines that is considered as a snippet.
* SMALLEST_SNIPPET: The minimum number of lines that is considered as a snippet.
* DATABASE: Information about the database.
* LOGGING: Settings for logging.
* MAX_SUSPICIOUS_LINES: The number of suspicious lines tried before giving up.
* VALID_TYPES: The variable types that are right now supported by SR.
------ Settings related to file under repair -------
* TESTS_LIST: The path to a list of the tests that could be run on the file
* TEST_SCRIPT: The path to a script that will run the test
* COMPILE_SCRIPT: The path to a script that will compile the code
* FAULTY_CODE: The path to the faulty code (a C file)
* COMPILE_EXTRA_ARGS: The list of necessary arguments that should be passed to clang to properly parse the code
* MAKE_OUTPUT: The output of running `make` stored in a file (for the purpose of finding necessary arguments for compilation
automatically)
* METHOD_RANGE: The tuple of beginning and end of method with the fault (limits the search to the area)
* SOSREPAIR: If set to False it will only run SearchRepair features
* NUMBER_OF_TIMES_RERUNNING_TESTS: The number of times that the tests should be run to assure patch's correctness
* EXCLUDE_SCANF: If removing/replacing scanf in buggy code is going to be a problem, set this to True
"""
__author__ = 'Afsoon Afzal'
import logging
LIBCLANG_PATH = '/opt/sosrepair/llvm/lib/libclang.so'
GENERATE_DB_PATH = '/experiment/src'
Z3_COMMAND = '/opt/sosrepair/bin/z3'
LARGEST_SNIPPET = 7
SMALLEST_SNIPPET = 3
DATABASE = {
'db_name': 'testdocker',
'user': 'docker',
'password': '1234',
}
LOGGING = {
'filename': 'logs/repair.log',
'level': logging.DEBUG
}
logging.basicConfig(**LOGGING)
MAX_SUSPICIOUS_LINES = 10
VALID_TYPES = ['int', 'short', 'long', 'char', 'float', 'double', 'long long', 'size_t']
TESTS_LIST = "/experiment/tests-list.txt"
TEST_SCRIPT = "/experiment/test.sh"
TEST_SCRIPT_TYPE = "/bin/bash"
COMPILE_SCRIPT = "/experiment/compile.sh"
FAULTY_CODE = "/experiment/src/src/mod_cgi.c"
COMPILE_EXTRA_ARGS = [
"-I/experiment/src",
# "-I/usr/include",
"-I/usr/include/glib-2.0",
"-I/usr/lib/x86_64-linux-gnu/glib-2.0/include",
"-I/opt/sosrepair/llvm/lib/clang/5.0.2/include"
]
MAKE_OUTPUT = "/experiment/makeout"
METHOD_RANGE = (584, 918)
# IF SOS+
# METHOD_RANGE = (747, 749)
SOSREPAIR = True
NUMBER_OF_TIMES_RERUNNING_TESTS = 1
EXCLUDE_SCANF = False
BULK_RUN_PATH = ""
GCOV_OBJECTS = "/experiment/src/src/.libs"
@@ -0,0 +1,52 @@
#!/bin/bash
bugrev=1913
dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
#Check if coverage is being run. If so, don't use time limit.
#if [ `basename $2` = "coverage" ] ; then
# cov=0
#else
cov=0
#fi
run_test()
{
cd $dir/src/tests
if [ $cov -eq 0 ] ; then
perl /experiment/lighttpd-run-tests.pl $1
else
timeout 5 perl /experiment/lighttpd-run-tests.pl $1
fi
RESULT=$?
if [ $RESULT = 0 ] ; then
echo ""
echo "PASS"
else
echo ""
echo "FAIL"
fi
killall -9 lighttpd &> /dev/null
cd ../../
return 0
}
case $1 in
p1) run_test 1 && exit 0 ;;
p2) run_test 2 && exit 0 ;;
p3) run_test 3 && exit 0 ;;
p4) run_test 4 && exit 0 ;;
p5) run_test 6 && exit 0 ;;
p6) run_test 7 && exit 0 ;;
p7) run_test 8 && exit 0 ;;
p8) run_test 10 && exit 0 ;;
p9) run_test 11 && exit 0 ;;
p10) run_test 12 && exit 0 ;;
p11) run_test 14 && exit 0 ;;
p12) run_test 15 && exit 0 ;;
p13) run_test 16 && exit 0 ;;
p14) run_test 17 && exit 0 ;;
p15) run_test 18 && exit 0 ;;
p16) run_test 20 && exit 0 ;;
p17) run_test 21 && exit 0 ;;
n1) run_test 9 && exit 0 ;;
esac
exit 1
@@ -0,0 +1,17 @@
n1
p1
p2
p3
p4
p5
p6
p7
p8
p9
p10
p12
p13
p14
p15
p16
p17
@@ -0,0 +1,82 @@
"""
This file includes all the settings that could be modified for running SearchRepair/SOSRepair
* LIBCLANG_PATH: The path to libclang build. It should be either a .so or .dylib file.
* GENERATE_DB_PATH: The path where the DB should be built from. SR will enumerate all C files in this path to build the
DB
* Z3_COMMAND: The z3 command on this machine.
* LARGEST_SNIPPET: The maximum number of lines that is considered as a snippet.
* SMALLEST_SNIPPET: The minimum number of lines that is considered as a snippet.
* DATABASE: Information about the database.
* LOGGING: Settings for logging.
* MAX_SUSPICIOUS_LINES: The number of suspicious lines tried before giving up.
* VALID_TYPES: The variable types that are right now supported by SR.
------ Settings related to file under repair -------
* TESTS_LIST: The path to a list of the tests that could be run on the file
* TEST_SCRIPT: The path to a script that will run the test
* COMPILE_SCRIPT: The path to a script that will compile the code
* FAULTY_CODE: The path to the faulty code (a C file)
* COMPILE_EXTRA_ARGS: The list of necessary arguments that should be passed to clang to properly parse the code
* MAKE_OUTPUT: The output of running `make` stored in a file (for the purpose of finding necessary arguments for compilation
automatically)
* METHOD_RANGE: The tuple of beginning and end of method with the fault (limits the search to the area)
* SOSREPAIR: If set to False it will only run SearchRepair features
* NUMBER_OF_TIMES_RERUNNING_TESTS: The number of times that the tests should be run to assure patch's correctness
* EXCLUDE_SCANF: If removing/replacing scanf in buggy code is going to be a problem, set this to True
"""
__author__ = 'Afsoon Afzal'
import logging
LIBCLANG_PATH = '/opt/sosrepair/llvm/lib/libclang.so'
GENERATE_DB_PATH = '/experiment/src'
Z3_COMMAND = '/opt/sosrepair/bin/z3'
LARGEST_SNIPPET = 7
SMALLEST_SNIPPET = 3
DATABASE = {
'db_name': 'testdocker',
'user': 'docker',
'password': '1234'
}
LOGGING = {
'filename': 'logs/repair.log',
'level': logging.DEBUG
}
logging.basicConfig(**LOGGING)
MAX_SUSPICIOUS_LINES = 10
VALID_TYPES = ['int', 'short', 'long', 'char', 'float', 'double', 'long long', 'size_t']
TESTS_LIST = "/experiment/tests-list.txt"
TEST_SCRIPT = "/experiment/test.sh"
TEST_SCRIPT_TYPE = "/bin/bash"
COMPILE_SCRIPT = "/experiment/compile.sh"
FAULTY_CODE = "/experiment/src/src/response.c"
COMPILE_EXTRA_ARGS = [
"-I/experiment/src",
# "-I/usr/include",
"-I/usr/include/glib-2.0",
"-I/usr/lib/x86_64-linux-gnu/glib-2.0/include",
"-I/opt/sosrepair/llvm/lib/clang/5.0.2/include"
]
MAKE_OUTPUT = "/experiment/makeout"
METHOD_RANGE = (32, 134)
SOSREPAIR = True
NUMBER_OF_TIMES_RERUNNING_TESTS = 1
EXCLUDE_SCANF = False
BULK_RUN_PATH = ""
@@ -0,0 +1,39 @@
#!/bin/bash
bugrev=1948
dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
run_test()
{
cd $dir/src/tests
perl ../../lighttpd-run-tests.pl $1
if [ $? = 0 ] ; then
echo ""
echo "PASS"
else
echo ""
echo "FAIL"
fi
popd > /dev/null
killall -9 lighttpd &> /dev/null
return 0
}
case $1 in
p1) run_test 1 && exit 0 ;;
p2) run_test 2 && exit 0 ;;
p3) run_test 3 && exit 0 ;;
p4) run_test 4 && exit 0 ;;
p5) run_test 6 && exit 0 ;;
p6) run_test 7 && exit 0 ;;
p7) run_test 8 && exit 0 ;;
p8) run_test 10 && exit 0 ;;
p9) run_test 11 && exit 0 ;;
p10) run_test 12 && exit 0 ;;
p11) run_test 14 && exit 0 ;;
p12) run_test 15 && exit 0 ;;
p13) run_test 16 && exit 0 ;;
p14) run_test 17 && exit 0 ;;
p15) run_test 18 && exit 0 ;;
p16) run_test 20 && exit 0 ;;
p17) run_test 21 && exit 0 ;;
n1) run_test 19 && exit 0 ;;
esac
exit 1
@@ -0,0 +1,14 @@
n1
p1
p2
p3
p4
p5
p6
p7
p8
p10
p11
p13
p14
p15
@@ -0,0 +1,86 @@
"""
This file includes all the settings that could be modified for running SearchRepair/SOSRepair
* LIBCLANG_PATH: The path to libclang build. It should be either a .so or .dylib file.
* GENERATE_DB_PATH: The path where the DB should be built from. SR will enumerate all C files in this path to build the
DB
* Z3_COMMAND: The z3 command on this machine.
* LARGEST_SNIPPET: The maximum number of lines that is considered as a snippet.
* SMALLEST_SNIPPET: The minimum number of lines that is considered as a snippet.
* DATABASE: Information about the database.
* LOGGING: Settings for logging.
* MAX_SUSPICIOUS_LINES: The number of suspicious lines tried before giving up.
* VALID_TYPES: The variable types that are right now supported by SR.
------ Settings related to file under repair -------
* TESTS_LIST: The path to a list of the tests that could be run on the file
* TEST_SCRIPT: The path to a script that will run the test
* COMPILE_SCRIPT: The path to a script that will compile the code
* FAULTY_CODE: The path to the faulty code (a C file)
* COMPILE_EXTRA_ARGS: The list of necessary arguments that should be passed to clang to properly parse the code
* MAKE_OUTPUT: The output of running `make` stored in a file (for the purpose of finding necessary arguments for compilation
automatically)
* METHOD_RANGE: The tuple of beginning and end of method with the fault (limits the search to the area)
* SOSREPAIR: If set to False it will only run SearchRepair features
* NUMBER_OF_TIMES_RERUNNING_TESTS: The number of times that the tests should be run to assure patch's correctness
* EXCLUDE_SCANF: If removing/replacing scanf in buggy code is going to be a problem, set this to True
"""
__author__ = 'Afsoon Afzal'
import logging
LIBCLANG_PATH = '/opt/sosrepair/llvm/lib/libclang.so'
GENERATE_DB_PATH = '/experiment/src'
Z3_COMMAND = '/opt/sosrepair/bin/z3'
LARGEST_SNIPPET = 7
SMALLEST_SNIPPET = 3
DATABASE = {
'db_name': 'testdocker',
'user': 'docker',
'password': '1234'
}
LOGGING = {
'filename': 'logs/repair.log',
'level': logging.DEBUG
}
logging.basicConfig(**LOGGING)
MAX_SUSPICIOUS_LINES = 10
VALID_TYPES = ['int', 'short', 'long', 'char', 'float', 'double', 'long long', 'size_t']
TESTS_LIST = "/experiment/tests-list.txt"
TEST_SCRIPT = "/experiment/test.sh"
TEST_SCRIPT_TYPE = "/bin/bash"
COMPILE_SCRIPT = "/experiment/compile.sh"
FAULTY_CODE = "/experiment/src/src/mod_secure_download.c"
COMPILE_EXTRA_ARGS = [
"-I/experiment/src",
# "-I/usr/include",
"-I/usr/include/glib-2.0",
"-I/usr/lib/x86_64-linux-gnu/glib-2.0/include",
"-I/opt/sosrepair/llvm/lib/clang/5.0.2/include"
]
MAKE_OUTPUT = "/experiment/makeout"
METHOD_RANGE = (198, 328)
# IF SOS+
# METHOD_RANGE = (278, 280)
SOSREPAIR = True
NUMBER_OF_TIMES_RERUNNING_TESTS = 1
EXCLUDE_SCANF = False
BULK_RUN_PATH = ""
GCOV_OBJECTS = "/experiment/src/src/.libs"
@@ -0,0 +1,40 @@
#!/bin/bash
bugrev=2254
dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
run_test()
{
cd $dir/src/tests
perl ../../lighttpd-run-tests.pl $1
if [ $? = 0 ] ; then
echo ""
echo "PASS"
else
echo ""
echo "FAIL"
fi
popd > /dev/null
killall -9 lighttpd &> /dev/null
return 0
}
case $1 in
p1) run_test 1 && exit 0 ;;
p2) run_test 2 && exit 0 ;;
p3) run_test 3 && exit 0 ;;
p4) run_test 4 && exit 0 ;;
p5) run_test 6 && exit 0 ;;
p6) run_test 7 && exit 0 ;;
p7) run_test 8 && exit 0 ;;
p8) run_test 9 && exit 0 ;;
p9) run_test 10 && exit 0 ;;
p10) run_test 11 && exit 0 ;;
p11) run_test 12 && exit 0 ;;
p12) run_test 14 && exit 0 ;;
p13) run_test 15 && exit 0 ;;
p14) run_test 16 && exit 0 ;;
p15) run_test 17 && exit 0 ;;
p16) run_test 18 && exit 0 ;;
p17) run_test 20 && exit 0 ;;
p18) run_test 21 && exit 0 ;;
n1) run_test 5 && exit 0 ;;
esac
exit 1
@@ -0,0 +1,16 @@
n1
p1
p2
p3
p4
p5
p6
p7
p9
p11
p12
p13
p14
p15
p16
p17
@@ -0,0 +1,3 @@
For this bug both SOS and SOS+ can generate perfect patch
but they won't if you return the first patch. If
`--all_patches` is used the perfect patch will be generated.
@@ -0,0 +1,54 @@
#!/bin/bash
bugrev=1913
dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
#Check if coverage is being run. If so, don't use time limit.
#if [ `basename $2` = "coverage" ] ; then
# cov=0
#else
cov=0
#fi
run_test()
{
cd $dir/src/tests
if [ $cov -eq 0 ] ; then
perl /experiment/lighttpd-run-tests.pl $1
else
timeout 5 perl /experiment/lighttpd-run-tests.pl $1
fi
RESULT=$?
if [ $RESULT = 0 ] ; then
echo ""
echo "PASS"
else
echo ""
echo "FAIL"
fi
killall -9 lighttpd &> /dev/null
cd ../../
return 0
}
case $1 in
p1) run_test 1 && exit 0 ;;
p2) run_test 2 && exit 0 ;;
p3) run_test 3 && exit 0 ;;
p4) run_test 4 && exit 0 ;;
p5) run_test 5 && exit 0 ;;
p6) run_test 6 && exit 0 ;;
p7) run_test 7 && exit 0 ;;
p8) run_test 8 && exit 0 ;;
p9) run_test 9 && exit 0 ;;
p10) run_test 12 && exit 0 ;;
p11) run_test 13 && exit 0 ;;
p12) run_test 14 && exit 0 ;;
p13) run_test 15 && exit 0 ;;
p14) run_test 16 && exit 0 ;;
p15) run_test 17 && exit 0 ;;
p16) run_test 18 && exit 0 ;;
p17) run_test 20 && exit 0 ;;
p18) run_test 21 && exit 0 ;;
n1) run_test 10 && exit 0 ;;
n2) run_test 11 && exit 0 ;;
esac
exit 1
@@ -0,0 +1,19 @@
n1
n2
p1
p2
p3
p4
p5
p6
p7
p8
p9
p10
p12
p13
p14
p15
p16
p17
p18
@@ -0,0 +1,45 @@
#!/bin/bash
bugrev=1913
dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
run_test()
{
cd $dir/src/tests
timeout 20 perl /experiment/lighttpd-run-tests.pl $1
RESULT=$?
if [ $RESULT = 0 ] ; then
echo ""
echo "PASS"
else
echo ""
echo "FAIL"
fi
killall -9 lighttpd &> /dev/null
cd ../../
return 0
}
case $1 in
p1) run_test 1 && exit 0 ;;
p2) run_test 2 && exit 0 ;;
p3) run_test 3 && exit 0 ;;
p4) run_test 4 && exit 0 ;;
p5) run_test 5 && exit 0 ;;
p6) run_test 6 && exit 0 ;;
p7) run_test 7 && exit 0 ;;
p8) run_test 8 && exit 0 ;;
p9) run_test 9 && exit 0 ;;
p10) run_test 10 && exit 0 ;;
p11) run_test 11 && exit 0 ;;
p12) run_test 12 && exit 0 ;;
p13) run_test 13 && exit 0 ;;
p14) run_test 14 && exit 0 ;;
p15) run_test 15 && exit 0 ;;
p16) run_test 16 && exit 0 ;;
p17) run_test 17 && exit 0 ;;
p18) run_test 18 && exit 0 ;;
p19) run_test 20 && exit 0 ;;
p20) run_test 21 && exit 0 ;;
n1) run_test 19 && exit 0 ;;
esac
exit 1
@@ -0,0 +1,18 @@
n1
p2
p4
p5
p6
p7
p8
p9
p10
p12
p13
p14
p15
p16
p17
p18
p19
p20
File diff suppressed because it is too large Load Diff