Embedded Linux Test Suites
Overview
VSELX is a set of modular test suites for embedded Linux systems. It includes the capability to test functions from the Linux
Standard Base (LSB)
specification in an embedded Linux environment. The Open Group
will be making two versions available, VSELX-Minimal and VSELX-Intermediate.
VSELX-Minimal is intended for deeply embedded systems, with requirements only for a single multi-threaded process, no file
system, no interactive users support, and only selected functions from the LSB.
VSELX-Intermediate is a superset of the VSELX-Minimal test coverage,
with the addition of required support for multiple processes, file
system, asynchronous I/O, and dynamic linking.
The test suites are derivatives of The Open Group's test suites used for POSIX®, LSBTM and UNIX® certification. These test suites have
been adapted for embedded testing and include the TETware/RT
and Embedded VSXgen test framework.
Note: The Open Group is now looking for early licensees
to participate in the test development group for these
new test suites. For more information on signing up to participate
please contact Mike Hickey at The Open Group.
Top
Test Suite Design
The embedded test capability allows use of the same rigorous industry standard tests in a hosted device as in multi purpose
systems. It allows cross compilation of tests on a host, with uploads of the test cases to the embedded device, and communication
between the host and the embedded device. Typically this will take the form of a serial link, although the use of a faster
communication link (such as a network connection) is not precluded. A simple message-passing protocol is implemented over the
communication channel. Capabilities included are a test case launcher, a test case terminator (for systems where exit() is not
supported, and a heartbeat thread.
A white paper is available explaining how the revised TETware harness has been adapted for testing embedded devices
at: http://tetworks.opengroup.org/Wpapers/TETwareRTWhitePaper.htm.
Top
Test Coverage
|
VSELX-Minimal Test Coverage1
- General ISO C Library
- abs(), asctime(), bsearch(), calloc(),
ctime(), difftime(), div(), feclearexcept(), fegetenv(), fegetexceptflag(),
fegetround(), feholdexcept(), feraiseexcept(), fesetenv(), fesetexceptflag(),
fesetround(), fetestexcept(), feupdateenv(), free(), gmtime(), imaxabs(),
imaxdiv(), isalnum(), isalpha(), isblank(), iscntrl(), isdigit(), isgraph(),
islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(), labs(),
ldiv(), llabs(), lldiv(), localeconv(), localtime(), malloc(), memchr(),
memcmp(), memcpy(), memmove(), memset(), mktime(), qsort(), rand(),
realloc(), setlocale(), snprintf(), sprintf(), srand(), sscanf(), strcat(),
strchr(), strcmp(), strcoll(), strcpy(), strcspn(), strerror(), strftime(),
strlen(), strncat(), strncmp(), strncpy(), strpbrk(), strrchr(), strspn(),
strstr(), strtod(), strtof(), strtoimax(), strtok(), strtol(), strtold(),
strtoll(), strtoul(), strtoull(), strtoumax(), strxfrm(), time(), tolower(),
toupper(), tzname, tzset(), va_arg(), va_copy(), va_end(), va_start(),
vsnprintf(), vsprintf(), vsscanf()
- Thread-Safe General ISO C Library
- asctime_r(), ctime_r(), gmtime_r(), localtime_r(), rand_r(), strerror_r(),
strtok_r()
- General C Library extended
- _tolower(), _toupper(), hcreate(), hdestroy(), hsearch(), iconv(),
iconv_close(), iconv_open(), strfmon(), strptime(), tdelete(), tfind(), toascii(),
tsearch(), twalk()
- Signals
- abort(), alarm(), kill(), pause(), raise(), sigaction(), sigaddset(),
sigdelset(), sigemptyset(), sigfillset(), sigismember(), signal(), sigpending(),
sigprocmask(), sigsuspend(), sigwait()
- Single Process
- confstr(), environ, errno, getenv(), putenv(), setenv(), sysconf(), uname(),
unsetenv()
- Threads Interfaces
-
-
pthread_addr_setstacksize(),
pthread_atfork(),
pthread_attr_destroy(),
pthread_attr_getdetachstate(),
pthread_attr_getstackaddr(),
pthread_attr_getstacksize(),
pthread_attr_init(),
pthread_attr_setdetachstate(),
pthread_attr_setschedparam(),
pthread_attr_setstackaddr(),
pthread_cancel(),
pthread_cleanup_pop(),
pthread_cleanup_push(),
pthread_cond_broadcast(),
pthread_cond_destroy(),
pthread_cond_init(),
pthread_cond_signal(),
pthread_cond_timedwait(),
pthread_cond_wait(),
pthread_condattr_destroy(),
pthread_condattr_getpshared(),
pthread_condattr_init(),
pthread_condattr_setpshared(),
pthread_create(),
pthread_detach(),
pthread_equal(),
pthread_exit(),
pthread_getschedparam(),
pthread_getspecific(),
pthread_join(),
pthread_key_create(),
pthread_key_delete(),
pthread_kill(),
pthread_mutex_destroy(),
pthread_mutex_init(),
pthread_mutex_lock(),
pthread_mutex_timedlock(),
pthread_mutex_trylock(),
pthread_mutex_unlock(),
pthread_mutexattr_destroy(),
pthread_mutexattr_getpshared(),
pthread_mutexattr_init(),
pthread_mutexattr_setpshared(),
pthread_once(),
pthread_rwlockattr_destroy(),
pthread_rwlockattr_getpshared(),
pthread_rwlockattr_init(),
pthread_rwlockattr_setpshared(),
pthread_rwlock_destroy(),
pthread_rwlock_init(),
pthread_rwlock_rdlock(),
pthread_rwlock_timedrdlock(),
pthread_rwlock_timedwrlock(),
pthread_rwlock_tryrdlock(),
pthread_rwlock_trywrlock(),
pthread_rwlock_unlock(),
pthread_rwlock_wrlock(),
pthread_self(),
pthread_setcancelstate(),
pthread_setcanceltype(),
pthread_setspecific(),
pthread_sigmask(),
pthread_testcancel()
|
Top
|
VSELX-Intermediate Test Coverage1
In addition VSELX-Intermediate contains test coverage for:
- Asynchronous I/O Functions
- aio_cancel(), aio_error(), aio_fsync(), aio_read(), aio_return(), aio_suspend(),
aio_write(), lio_listio(),
- Jump Functions
- longjmp(), setjmp()
- General C Library Extension
- fnmatch(), getopt(), optarg, opterr, optind, optopt
- Device Input and Output
- clearerr(), close(), fclose(), fdopen(), feof(), ferror(), fflush(),
fgetc(), fgets(), fileno(), fopen(), fprintf(), fputc(), fputs(), fread(),
freopen(), fscanf(), fwrite(), getc(), getchar(), gets(), open(), perror(),
printf(), putc(), putchar(), puts(), read(), scanf(), setbuf(), setvbuf(),
stderr, stdin, stdout, ungetc(), vfprintf(), vfscanf(), vprintf(),
vscanf(), write()
- Dynamic Linking
- dlclose(), dlerror(), dlopen(), dlsym()
- Interprocess Communication
- ftok(), msgctl(), msgget(), msgrcv(), msgsnd(), semctl(), semget(),
semop(), shmat(), shmctl(), shmdt(), shmget()
- File Descriptor Management
- dup(), dup2(), fcntl(), fgetpos(), fseek(), fseeko(), fsetpos(),
ftell(), ftello(), ftruncate(), lseek(), rewind()
- File System
- access(), chdir(), closedir(), creat(), fpathconf(), fstat(), getcwd(),
link(), mkdir(), opendir(), pathconf(), readdir(), remove(), rename(),
rewinddir(), rmdir(), stat(), tmpfile(), tmpnam(), unlink(), utime()
- Thread-Safe File System
- readdir_r()
- Memory Management
- mmap(),
mprotect(),
msync(),
munmap()
- Multiple Processes
- _Exit(), _exit(), assert(), atexit(), clock(), execl(), execle(),
execlp(), execv(), execve(), execvp(), exit(), fork(), getpgrp(), getpid(),
getppid(), setsid(), sleep(), times(), wait(), waitpid()
- Pipe
- pipe()
- Signal Jump Functions
- siglongjmp(), sigsetjmp()
- Device Input and Output
- fgetwc(), fgetws(), fputwc(), fputws(), fwide(), fwprintf(), fwscanf(),
getwc(), getwchar(), putwc(), putwchar(), ungetwc(), vfwprintf(), vfwscanf(),
vwprintf(), vwscanf(), wprintf(), wscanf()
- Multiple Process
- nice(), ulimit()
- Thread Mutex Extensions
- pthread_mutexattr_gettype(), pthread_mutexattr_settype()
- Threads Extensions
- pthread_attr_getguardsize(), pthread_attr_getstack(), pthread_attr_setguardsize(),
pthread_attr_setstack(), pthread_getconcurrency(), pthread_setconcurrency()
- Wide-Character Library
- wcswidth(), wcwidth()
|
Top
Modular Design
VSELX is modular, both at the implementation level and at the user level. The testing process is divided into clear stages -
Each stage is clearly documented in the User and Installation Guide, which accompanies the product.
This stage includes setting up user-ids and groups for testing, and reading the tape. This stage includes configuring and
installing the TETware harness, which is used to control building, execution and cleanup of VSELX tests.
VSELX automatically installs on most common platforms. Where system dependencies may vary, these are isolated into clearly
defined user changeable sections of the test suite. During this stage VSELX builds the test harness and associated libraries.
VSELX separates the building of the test harness and tools from the testsets themselves. The test suite may be built completely or
in sub-sections, which decrease in granularity from test sections and areas down to individual testsets.
Once built, the test suite may be run as a whole in one pass, or in sub-sections which decrease in granularity from test areas
down to individual tests within testsets.
VSELX generates an intermediate level journal file in a TET compliant format. This is sufficient for debugging purposes. When a
formal report is required, then the formal report writers provided with VSELX are used to process the journal file.
Top
UNIX is a registered trademark of The Open Group in the US and other countries.
LSB is a trademark of the Free Standards Group
POSIX is a registered trademark of the IEEE.
Top
Please note that this information is subject to change.
|