The Open Group : Making Standards Work
About The Open Group The Open Group Forums Certification Collaboration Services
HOME   |   SITE MAP   |   SEARCH  
Sponsor an Event Become a Member of The Open Group The Open Group Member Area
Government Programs Events Bookstore & Downloads Newsroom Contact The Open Group
You are here: Home >Testing > Embedded Linux Systems
Test Suites
 

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.

Preparation

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.

Configuration and Installation

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.

Test Building

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.

Test Execution

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.

Test Reporting

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.
   
 

 

 

 
   |   Legal Notices & Terms of Use   |   Privacy Statement   |   Top of Page   Return to Top of Page