mirror of
https://git.sakamoto.pl/laudom/http.sh.git
synced 2025-08-03 12:23:34 +02:00
Compare commits
5 commits
aa970ef7e9
...
7c9ae72db4
Author | SHA1 | Date | |
---|---|---|---|
|
7c9ae72db4 | ||
|
533c49e670 | ||
|
19039683bb | ||
|
c22ee9b245 | ||
|
061b6d14a2 |
4 changed files with 69 additions and 12 deletions
|
@ -70,17 +70,17 @@ alias _data_parse_pairs='
|
|||
_data_gen_expr() {
|
||||
# we need the pairs sorted due to how the sed expr generation works
|
||||
local IFS=$'\01\n'
|
||||
local i
|
||||
local i sorted
|
||||
sorted=($(for (( i=0; i<${#search[@]}; i++ )); do
|
||||
echo "${column[i]}"$'\01'"${search[i]}"
|
||||
done | sort -n -t$'\01'))
|
||||
|
||||
local last=0
|
||||
for (( i=0; i<${#sorted[@]}; i=i+2 )); do
|
||||
if [[ $((sorted[i] - last)) -le 1 ]]; then
|
||||
if [[ $((sorted[i] - last)) -le 1 && $i != 0 ]]; then
|
||||
expr+="$(_sed_sanitize "${sorted[i+1]}")${delim}"
|
||||
else
|
||||
expr+="$(repeat $((sorted[i] - last)) ".*$delim")$(_sed_sanitize "${sorted[i+1]}")${delim}"
|
||||
expr+="$(repeat $((sorted[i] - last)) "[^${delim}]*${delim}")$(_sed_sanitize "${sorted[i+1]}")${delim}"
|
||||
fi
|
||||
last="${sorted[i]}"
|
||||
done
|
||||
|
@ -238,7 +238,7 @@ data_replace_value() {
|
|||
if [[ $column == 0 ]]; then
|
||||
local expr="s$ctrl^$(_sed_sanitize "$2")\(${delim}.*\)$ctrl$(_sed_sanitize "$3")\1$ctrl"
|
||||
else
|
||||
local expr="s$ctrl^\($(repeat $column ".*$delim")\)$(_sed_sanitize "$2")\($delim$(repeat $(( $(cat "${1}.cols") - column - 1 )) ".*$delim")\)"'$'"$ctrl\1$(_sed_sanitize "$3")\2$ctrl"
|
||||
local expr="s$ctrl^\($(repeat $column "[^${delim}]*${delim}")\)$(_sed_sanitize "$2")\($delim$(repeat $(( $(cat "${1}.cols") - column - 1 )) "[^${delim}]*${delim}")\)"'$'"$ctrl\1$(_sed_sanitize "$3")\2$ctrl"
|
||||
fi
|
||||
|
||||
sed -i "$expr" "$1"
|
||||
|
@ -273,7 +273,7 @@ data_replace() {
|
|||
if [[ $column == 0 ]]; then
|
||||
local expr="s$ctrl^$(_sed_sanitize "$2")${delim}.*$ctrl"
|
||||
else
|
||||
local expr="s$ctrl^$(repeat $column ".*$delim")$(_sed_sanitize "$2")$delim$(repeat $(( $(cat "${store}.cols") - column - 1 )) ".*$delim")"'$'"$ctrl"
|
||||
local expr="s$ctrl^$(repeat $column "[^${delim}]*${delim}")$(_sed_sanitize "$2")$delim$(repeat $(( $(cat "${store}.cols") - column - 1 )) "[^${delim}]*${delim}")"'$'"$ctrl"
|
||||
fi
|
||||
|
||||
# fi
|
||||
|
@ -310,7 +310,7 @@ data_yeet() {
|
|||
if [[ $column == 0 ]]; then
|
||||
local expr="/^$(_sed_sanitize "$2")${delim}.*/d"
|
||||
else
|
||||
local expr="/^$(repeat $column ".*$delim")$(_sed_sanitize "$2")$delim$(repeat $(( $(cat "${store}.cols") - column - 1 )) ".*$delim")"'$'"/d"
|
||||
local expr="/^$(repeat $column "[^${delim}]*${delim}")$(_sed_sanitize "$2")$delim$(repeat $(( $(cat "${store}.cols") - column - 1 )) "[^${delim}]*${delim}")"'$'"/d"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
@ -60,7 +60,39 @@ EOF
|
|||
match="nyaa"
|
||||
}
|
||||
|
||||
server_res_header() {
|
||||
server_patch_dummy() {
|
||||
prepare() {
|
||||
cat <<"EOF" > app/webroot/meow.shs
|
||||
#!/bin/bash
|
||||
echo "${r[method]}"
|
||||
EOF
|
||||
}
|
||||
|
||||
tst() {
|
||||
curl -s "localhost:1337/meow.shs" -X PATCH
|
||||
}
|
||||
|
||||
match="PATCH"
|
||||
}
|
||||
|
||||
server_put_dummy() {
|
||||
tst() {
|
||||
curl -s "localhost:1337/meow.shs" -X PUT
|
||||
}
|
||||
|
||||
match="PUT"
|
||||
}
|
||||
|
||||
server_delete_dummy() {
|
||||
tst() {
|
||||
curl -s "localhost:1337/meow.shs" -X DELETE
|
||||
}
|
||||
|
||||
match="DELETE"
|
||||
}
|
||||
|
||||
server_head() {
|
||||
# known to fail; TODO for another day
|
||||
tst() {
|
||||
curl -s -I localhost:1337
|
||||
}
|
||||
|
@ -68,6 +100,14 @@ server_res_header() {
|
|||
match_sub="HTTP.sh"
|
||||
}
|
||||
|
||||
server_res_header() {
|
||||
tst() {
|
||||
curl -s -v localhost:1337 2>&1
|
||||
}
|
||||
|
||||
match_sub="HTTP.sh"
|
||||
}
|
||||
|
||||
server_res_header_custom() {
|
||||
prepare() {
|
||||
cat <<"EOF" > app/webroot/meow.shs
|
||||
|
@ -162,6 +202,14 @@ subtest_list=(
|
|||
server_get_param
|
||||
server_post_param
|
||||
|
||||
# currently functionally equivalent
|
||||
server_patch_dummy
|
||||
server_put_dummy
|
||||
server_delete_dummy
|
||||
|
||||
## currently broken, TODO
|
||||
# server_head
|
||||
|
||||
server_res_header
|
||||
server_res_header_custom
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ notORM_replace_oldsyntax() {
|
|||
data_get "$store" { } out
|
||||
out[2]='meow!'
|
||||
data_replace "$store" 4 out 1 || return $?
|
||||
data_get "$store" 4 || return $?
|
||||
data_get "$store" 4 1 || return $?
|
||||
[[ "${res[@]}" == "${out[@]}" ]] && return 0 || return 1
|
||||
}
|
||||
}
|
||||
|
|
17
tst.sh
17
tst.sh
|
@ -1,4 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
trap ctrl_c INT
|
||||
ctrl_c() {
|
||||
pkill -P $$
|
||||
echo -e "Interrupted and cleaned up."
|
||||
return 255
|
||||
}
|
||||
|
||||
_defaults() {
|
||||
match=""
|
||||
|
@ -52,6 +58,7 @@ on_fatal() {
|
|||
IFS=$'\n'
|
||||
for i in "$@"; do
|
||||
if [[ ! -f "$i" ]]; then
|
||||
echo "ENOENT: $i"
|
||||
echo -e "$0 - basic test framework\n\nusage: $0 <test> [test] [...]"
|
||||
exit 1
|
||||
fi
|
||||
|
@ -116,10 +123,12 @@ _final_cleanup() {
|
|||
for i in $(jobs -p); do
|
||||
pkill -P $i
|
||||
done
|
||||
sleep 2
|
||||
for i in $(jobs -p); do
|
||||
pkill -9 -P $i
|
||||
done
|
||||
if [[ "$(jobs -p)" != '' ]]; then
|
||||
sleep 1
|
||||
for i in $(jobs -p); do
|
||||
pkill -9 -P $i
|
||||
done
|
||||
fi
|
||||
pkill -P $$
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue