aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvitikkan <viktor.tikkanen@nokia.com>2016-07-07 14:23:20 +0300
committerJose Lausuch <jose.lausuch@ericsson.com>2016-07-07 12:13:18 +0000
commitaa49985bda6e5a9935973c90aa13bda40eada399 (patch)
treea8876f63fece16a2d7e3e52ca68c76ae557adca1
parent627aed69c99bf0c3f8a0ffd4268cef74da956953 (diff)
Added 'vacation' test case
Running this test case illustrates how Functest code base and performance tend to grow when trying to catch more and more bugs in OPNFV environment. The case is not bound to any tier. Change-Id: Ib3c2f3f3d9d78c1251fbb35e6ea6afd3cf1afbdb Signed-off-by: vitikkan <viktor.tikkanen@nokia.com>
-rw-r--r--cli/commands/cli_testcase.py5
-rw-r--r--utils/functest_vacation.py52
2 files changed, 56 insertions, 1 deletions
diff --git a/cli/commands/cli_testcase.py b/cli/commands/cli_testcase.py
index d8557b962..5d546a216 100644
--- a/cli/commands/cli_testcase.py
+++ b/cli/commands/cli_testcase.py
@@ -13,6 +13,7 @@ import yaml
import functest.ci.tier_builder as tb
import functest.utils.functest_utils as ft_utils
+import functest.utils.functest_vacation as vacation
""" global variables """
with open(os.environ["CONFIG_FUNCTEST_YAML"]) as f:
@@ -48,7 +49,9 @@ class CliTestcase:
click.echo(description)
def run(self, testname):
- if not os.path.isfile(ENV_FILE):
+ if testname == 'vacation':
+ vacation.main()
+ elif not os.path.isfile(ENV_FILE):
click.echo("Functest environment is not ready. "
"Run first 'functest env prepare'")
else:
diff --git a/utils/functest_vacation.py b/utils/functest_vacation.py
new file mode 100644
index 000000000..0ba094477
--- /dev/null
+++ b/utils/functest_vacation.py
@@ -0,0 +1,52 @@
+from os import environ
+from curses import initscr, curs_set, newwin, endwin,\
+ KEY_RIGHT, KEY_LEFT, KEY_DOWN, KEY_UP
+from random import randrange
+
+
+def main():
+ environ["TERM"] = 'Eterm'
+ initscr()
+ curs_set(0)
+ try:
+ win = newwin(16, 60, 0, 0)
+ win.keypad(True)
+ win.nodelay(True)
+ win.border('|', '|', '-', '-', '+', '+', '+', '+')
+ win.addch(4, 44, '@')
+ win.addstr(0, 5, ' Eat all the OPNFV bugs by FunTest! ')
+ win.addstr(15, 7, ' Left,Right,Up,Down: move; other keys: quit ')
+ snake = [[20, 7], [19, 7], [18, 7], [17, 7],
+ [16, 7], [15, 7], [14, 7], [13, 7]]
+ key = KEY_RIGHT
+ body = '~FUNTEST'
+ ind = 0
+ while key != 27:
+ win.addstr(0, 44, ' Score: '+str(len(snake)-len(body))+' ')
+ win.timeout(140 - 2 * len(snake))
+ getkey = win.getch()
+ key = key if getkey == -1 else getkey
+ snake.insert(
+ 0, [snake[0][0]+(key == KEY_RIGHT and 1 or
+ key == KEY_LEFT and -1),
+ snake[0][1]+(key == KEY_DOWN and 1 or
+ key == KEY_UP and -1)])
+ win.addch(snake[len(snake)-1][1], snake[len(snake)-1][0], ' ')
+ if win.inch(snake[0][1], snake[0][0]) & 255 == 32:
+ snake.pop()
+ elif win.inch(snake[0][1], snake[0][0]) & 255 == ord('@'):
+ c = [n for n in [[randrange(1, 58, 1), randrange(1, 14, 1)]
+ for x in range(len(snake))] if n not in snake]
+ win.addch(c == [] and 4 or c[0][1],
+ c == [] and 44 or c[0][0], '@')
+ else:
+ break
+ ind += 1
+ win.addch(snake[0][1], snake[0][0], body[ind % len(body)])
+ finally:
+ endwin()
+
+ print '\nSnake.PY-26lines by Kris Cieslak (defaultset.blogspot.com).'
+ print 'OPNFV adaptation by Functest dream team.'
+ print 'Thanks for playing, your score: '+str(len(snake)-len(body)-1)+'.'
+ print 'Find and fix more bugs in your real OPNFV setup!\n'