File: test.sh

package info (click to toggle)
elinks 0.19.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 24,424 kB
  • sloc: ansic: 174,653; cpp: 31,967; sh: 7,841; python: 4,039; perl: 2,183; javascript: 1,794; pascal: 1,710; makefile: 1,006; yacc: 295; lisp: 125; awk: 79; ruby: 70
file content (143 lines) | stat: -rwxr-xr-x 3,755 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#!/bin/bash
#
# shell script menus for elinks binary testing
#

CUR_TEST=hello

clear

echo '       --/                                    \--'
echo '       --[ Welcome to the elinks test helper  ]--'
echo '       --[                                    ]--'
echo '       --[ [*] use option 1 to run dump test  ]--'
echo '       --\                                    /--'
echo '                                                 '

# RUN TEST
run_test() {
  if [ "$1" = "hello" ]; then
    $ELINKS --dump ./test/hello.html
  elif [ "$1" = "http" ]; then
    echo "[=] assumes You're running https server on port 9452"
    echo "[=] see http_server option"
    $ELINKS \
      --dump http://127.0.0.1:9452 | head
  elif [ "$1" = "https" ]; then
    echo "[=] assumes You're running https server on port 9453"
    echo "[=] see https_server option"
    $ELINKS \
      -eval 'set connection.ssl.cert_verify = 0' \
      --dump https://127.0.0.1:9453 | head
  elif [ "$1" = "interactive" ]; then
    # set 256 colors terminal
    # use: export TERM=xterm-256color
    # and use compiled elinks with the tests folder
    if [ "$ARCH" = "win64" ]; then 
      export TERM=dumb
      $ELINKS \
        --config-dir `pwd`/test/etc \
        ./test
    else
      export TERM=xterm-256color
      $ELINKS \
        --config-dir `pwd`/test/etc \
        -eval 'set terminal.xterm-256color.colors = 3' \
        ./test
    fi
  fi
}

# HTTP SERVER MENU
http_menu() {
  HTTP_OPTS="start_http stop_http return"
  echo ""
  echo "--[ http server menu ]--"
  echo ""
  select SEL in $HTTP_OPTS; do
    echo "  [*] http server menu "
    if [ "$SEL" = "start_http" ]; then
      python3 ./test/server/httpf.py &
      PID=`echo $!`
      echo $PID > /tmp/eltmpf.pid
      echo "[*} Starting http server (pid $PID)"
    elif [ "$SEL" = "stop_http" ]; then
      PID=`cat /tmp/eltmpf.pid`
      echo "[*] Stopping http server (pid $PID)" 
      kill $PID
    elif [ "$SEL" = "return" ]; then
      break
    fi
  done
}

# HTTPS SERVER MENU
https_menu() {
  HTTPS_OPTS="start_https stop_https certgen return"
  echo "--[ https server menu ]--"
  echo ""
  echo "  [*] use certgen to generate server certificate"
  echo ""
  select SEL in $HTTPS_OPTS; do
    echo "  [*] https server menu "
    if [ "$SEL" = "start_https" ]; then
      python3 ./test/server/https.py &
      PID=`echo $!`
      echo $PID > /tmp/eltmp.pid
      echo "[*} Starting https server (pid $PID)"
    elif [ "$SEL" = "stop_https" ]; then
      PID=`cat /tmp/eltmp.pid`
      echo "[*] Stopping https server (pid $PID)" 
      kill $PID
    elif [ "$SEL" = "certgen" ]; then
      echo "[*] generation ssl certificate for the https server"
      ./test/server/gen.sh
    elif [ "$SEL" = "return" ]; then
      break
    fi
  done
}

# MAIN LOOP
#
# When called from build.sh it will get first
# parameter as binary suffix and second parameter
# as architecture
#
if [ -d $1 ]; then
  BIN_SUFFIX=""
else
  BIN_SUFFIX=$1
fi
if [ -d $2 ]; then
  ARCHIT="lin64"
else
  ARCHIT=$2
fi
echo $ARCH $BIN_SUFFIX
if [ -f ../bin/elinks_$ARCH$BIN_SUFFIX ]; then
  ELINKS=../bin/elinks_$ARCH$BIN_SUFFIX
else
  ELINKS=./src/elinks$BIN_SUFFIX
fi
SEL="none"
OPTS="hello http https interactive null null null null null http_server https_server exit"
select SEL in $OPTS; do
  echo "[*] Current test : " $SEL 
  echo "[*] Current bin  : " $ELINKS
  if [ "$SEL" = "hello" ]; then
    run_test $SEL
  elif [ "$SEL" = "http" ]; then
    run_test $SEL
  elif [ "$SEL" = "https" ]; then
    run_test $SEL
  elif [ "$SEL" = "interactive" ]; then
    run_test $SEL
  elif [ "$SEL" = "http_server" ]; then
    http_menu
  elif [ "$SEL" = "https_server" ]; then
    https_menu
  elif [ "$SEL" = "exit" ]; then
    exit
  fi
done