XOS is a framework for operationalizing a collection of disaggregated services. It is packaged as a project in the Open CORD initiative, with source code managed through https://gerrit.opencord.org. It is also mirrored at https://github.com/opencord.
You can download and use XOS either as part of CORD (see the CORD Guide for details) or as a standalone component (see the XOS Guide for details).
Also visit the XOS Wiki Page for additional information.
Run make test to run all tests on the XOS codebase. This is what happens
during the verify_xos_unit-test job in Jenkins.
Running these tests requires:
- A Python 2.7, and one or more of Python 3.5, 3.6, or 3.7 development environment
- Requires a C build system and the python header files (under ubuntu 16.04,
apt install python2-dev python3-dev build-essential) to build packages with C extensions.
- Requires a C build system and the python header files (under ubuntu 16.04,
- virtualenv
- tox version 3.2 or later
This will run 3 sets of test targets, which can also be run individually:
-
lib-test: runstoxon each of the library modules stored inlib. These are tested against both Python 2 and 3 by running bothnose2andflake8.If you are making changes only to a specific library, it is recommended that you run
toxdirectly inside that modules directory, which should run much more quickly than testing all the libraries. -
xos-test: runsnose2to test thexosdirectory. This code is not yet Python 3 or flake8 clean. -
migration-test: Runs thexos-migratetool on the XOS core modules. This verifies that the Django migrations have been properly created. If you've changedxosgenxor thecore.xprotofile you may need to generate new migrations. Seedocs/dev/xosmigrate.mdfor more information.
Additionally, a virtualenv will be created in venv-xos - you can source ./venv-xos/bin/activate if you'd like to run tools like xos-migrate manually.
Testing errors that complain about missing compliers or header files:
src/twisted/test/raiser.c:4:20: fatal error: Python.h: No such file or directory
You probably need to install a C build system and the Python development headers.
After making changes to the requirements.txt or other files, the changes don't seem to be register
You might need to clean up any files left behind by previous development work.
make clean in the root Makefile should clean up most files. Additionally,
git clean -ixd will let you interactively remove all ignored files and
directories from your source tree.