Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
68 lines (56 sloc) 3.12 KB
TestEcho - Erlang test problem for Echo.
Author: Alexandr Granin
License: GPL
3rd party modules:
- mochnum.erl
Author: Bob Ippolito <>
copyright 2007 Mochi Media, Inc.
Installation and Running (on Linux)
1. Edit ./src/, set these env variables:
- docroot - where test_echo .yaws files can be found (default - "../priv/docroot", i.e. TestEcho/priv/docroot seen from TestEcho/ebin);
- host - web-server IP (default - {0,0,0,0}, i.e. localhost);
- port - free port for web server (default 8081);
- server_name - unique YAWS embedded web-server name (default - "test_echo").
2. Run ./compile.
3. Run ./run.
4. In Erl shell start application:
5. If all {ok}, the site will be available at host:port page.
By default, ./run script searches the YAWS beams in /usr/local/lib/yaws and /usr/lib/yaws. If you have different YAWS settings, edit paths in file ./ebin/st. Yaws started in embedded mode.
Alternatively, test_echo application can be started from ./ebin directory:
cd ./ebin
erl -pa <path/to/yaws/beams>
erl> test_echo_sup:start(). % more correct: application:start(test_echo).
Program structure
Program has 3 parts: site files, servers' code and modules' code. Dependence:
Site -> (Supervised Servers) -> Modules
- ehtml_server - produces ehtml-tuples (tables for datalists, datetime inputs etc.). To add new datalist format, write appropriate ehtml_server:make_table_row() function. (It could be improved by using hi-order functions actually).
- security_server - stores and processes data.
- query_process_server - processes YAWS GET and POST queries in complex cases (datetime extracting).
- mochinum - only for float-value formatting.
- test_data - test functions and hardcoded test data, including test_echo.pdf tables (supplemented by my data for testing convenience).
- data_collection - functions to process data, including test_echo.pdf scale-depended collecting. (It was prototyped in Haskell, see .prototypes folder.)
- date_manipulation - functions to support data_collection module. (It prototyped too.)
- test_echo, test_echo_app, test_echo_sup - application files.
- index.yaws - Index page
- data_collect.yaws - Filter and Scale input form for collecting data.
- data_collect_output.yaws - Results of collecting data.
- data_input.yaws - Security transactions input form.
- data_process.yaws - Security transactions process after data_input.yaws.
- data_manipulate.yaws - Clearing data; loading hardcoded test data only or merging the one.
- data_output.yaws - Showing data.
- data_test.yaws - Some testing procedures for security_server and modules.
There are some strange behaviour with browser cache. Sometimes it crashes inputed data or provides invalid data to servers. Probably, it could be removed by carefully writed site, some yaws/browser settings or more safe module functions, but this is another problem, not for now.