GNU
|
Liberty Eiffel
|
Automated Tests
|
Wiki
|
Savannah project
|
Debian packages
|
Documentation
>
smarteiffel
>
EIFFELTEST_CLIENT_CONDUCTOR
+
Point of view
All features
ANY
All features
class EIFFELTEST_CLIENT_CONDUCTOR
Summary
top
As in any good orchestra, there must be a conductor
The eiffeltest conductor starts the servers and distributes work among them by scanning subdirectories
Direct parents
Insert list:
LOGGING
,
PROCESS_WAIT
Overview
top
Creation features
{
ANY
}
make
(a_servers_count:
INTEGER_32
, force:
BOOLEAN
, root:
STRING
)
Features
{
ANY
}
run
success
:
BOOLEAN
{}
start_servers
on_reply
(expected_port:
INTEGER_32
, actual_port:
INTEGER_32
, command:
FIXED_STRING
, reply:
STRING
)
on_done
(expected_port:
INTEGER_32
, actual_port:
INTEGER_32
, status:
INTEGER_32
)
on_killed
(server:
EIFFELTEST_CLIENT_SOCKET
, pid:
INTEGER_32
, status:
INTEGER_32
)
{}
collection_sorter
:
COLLECTION_SORTER
[
FIXED_STRING
]
scan_tree_
(force:
BOOLEAN
, root:
STRING
, eiffeltest_path:
STRING
, logger:
OUTPUT_STREAM
)
scan_tree
(force:
BOOLEAN
, root:
STRING
, logger:
OUTPUT_STREAM
)
is_ignored
(name:
STRING
):
BOOLEAN
{}
make
(a_servers_count:
INTEGER_32
, force:
BOOLEAN
, root:
STRING
)
stack
:
LOOP_STACK
servers_count
:
INTEGER_32
test_results
:
AVL_DICTIONARY
[
EIFFELTEST_CLIENT_RESULT
,
INTEGER_32
]
servers_list
:
FAST_ARRAY
[
EIFFELTEST_CLIENT_SOCKET
]
commands
:
EIFFELTEST_COMMAND_PROVIDER
{}
log
:
LOGGER
There is one logger per concrete type; for performance reasons it is cached in each instance.
log_memory__0_
:
LOGGER
The cached logger.
{
ANY
}
in
:
WAITPID_INPUT
job
:
WAITPID_JOB
run
effective procedure
{
ANY
}
top
success
:
BOOLEAN
effective function
{
ANY
}
top
start_servers
effective procedure
{}
top
require
test_results
= Void
ensure
test_results
.count =
servers_count
servers_list
.count =
servers_count
on_reply
(expected_port:
INTEGER_32
, actual_port:
INTEGER_32
, command:
FIXED_STRING
, reply:
STRING
)
effective procedure
{}
top
on_done
(expected_port:
INTEGER_32
, actual_port:
INTEGER_32
, status:
INTEGER_32
)
effective procedure
{}
top
on_killed
(server:
EIFFELTEST_CLIENT_SOCKET
, pid:
INTEGER_32
, status:
INTEGER_32
)
effective procedure
{}
top
collection_sorter
:
COLLECTION_SORTER
[
FIXED_STRING
]
writable attribute
{}
top
scan_tree_
(force:
BOOLEAN
, root:
STRING
, eiffeltest_path:
STRING
, logger:
OUTPUT_STREAM
)
effective procedure
{}
top
require
root /= Void
logger.is_connected
scan_tree
(force:
BOOLEAN
, root:
STRING
, logger:
OUTPUT_STREAM
)
effective procedure
{}
top
require
root /= Void
logger.is_connected
is_ignored
(name:
STRING
):
BOOLEAN
effective function
{}
top
require
not name.is_empty
make
(a_servers_count:
INTEGER_32
, force:
BOOLEAN
, root:
STRING
)
effective procedure
{}
top
require
a_servers_count > 0
stack
:
LOOP_STACK
once function
{}
top
servers_count
:
INTEGER_32
writable attribute
{}
top
test_results
:
AVL_DICTIONARY
[
EIFFELTEST_CLIENT_RESULT
,
INTEGER_32
]
writable attribute
{}
top
servers_list
:
FAST_ARRAY
[
EIFFELTEST_CLIENT_SOCKET
]
writable attribute
{}
top
commands
:
EIFFELTEST_COMMAND_PROVIDER
writable attribute
{}
top
log
:
LOGGER
effective function
{}
top
There is one logger per concrete type; for performance reasons it is cached in each instance.
ensure
Result /= Void
log_memory__0_
:
LOGGER
writable attribute
{}
top
The cached logger.
The ugly name is intentional. Don't use directly.
in
:
WAITPID_INPUT
once function
{
ANY
}
top
job
:
WAITPID_JOB
once function
{
ANY
}
top