 Welcome to the CTS Learning Series, Chapter 6, Testing an OSS Example, Video 2, Differences in Testing OSS-USEs vs Non-OSS-USEs. In this video, we will explore the contents of an OSS, and explain the differences in testing process the CTS undertakes to test OSS-USEs. An in-depth explanation of the CTS's testing methodology for Non-OSS-USEs is contained in Chapter 1, Chapter 3, Video 2, and is also shown here. At a high level, the user must compile the gold standard libraries based on the options from the project and toolchain configuration files, compile their USE against the gold standard libraries, and then use the object files to test for conformance. The OSS testing workflow is now shown. Interestingly, when testing OSS-USEs, they are not required to generate gold standard libraries, use compiler-specific definitions, or use allowed definitions, with some exceptions. Instead, the CTS provides conformance interface tests to check the needed interfaces that are provided by the operating system. The user configures the toolchain and project configuration file and immediately tests the OSS-USE for conformance. Tests are compiled and linked with the operating system build environment into a series of executables that never run. This compilation and linking of files are repeated for each service that is provided by the OSS, for example, health monitoring and fault management, life cycle management, etc. Finally, the conformance test report is generated. The OSS may provide an operating system. If the OSS provides an operating system, it must provide, at a minimum, partitioning, POSIX and or RNK653, a network stack, a file system, the C-language runtime, and health monitoring and fault management, or HMFM. An OSS may optionally provide one or more of the following. The C++ language runtime, ADA language runtime, Java language runtime, the OSGI framework, OpenGL drivers, and configuration services. These optional capabilities must be supplied in a POSIX or RNK653 partition. If the OSS-UOC under test does not provide an operating system, the UOC is classified as a portable OSS-UOC or a dependent OSS-UOC. These classification definitions are contained in CR174 at ticketing.facesoftware.org. In short, these classifications define what the APIs the OSS-UOC may use to access the operating system, either only the face OSS interface, which is a portable OSS-UOC, or non-face OSS interfaces, which is a dependent OSS-UOC. Portable OSS-UOCs require the generation of the gold standard libraries. An in-depth explanation merits its own discussion and is out of scope for the CTS learning series. In this chapter, our demonstration will consist of testing the GNU C++ standard library, which was installed on our 64-bit architecture version of CentOS in Chapter 2. This will consist of configuring an OSS toolchain configuration and OSS project configuration that links to where we have installed the C++ standard libraries. Thank you for watching. In the next video, entitled Demonstration of Construction of an OSS Toolchain, we will demonstrate the complete construction and validation of an OSS toolchain.