1
1
# XOS
2
2
3
- XOS is a framework for operationalizing a collection of
4
- disaggregated services. It is packaged as a project in
5
- the Open CORD initiative, with source code managed through
6
- < https://gerrit.opencord.org > . It is also mirrored at
3
+ XOS is a framework for operationalizing a collection of disaggregated services.
4
+ It is packaged as a project in the Open CORD initiative, with source code
5
+ managed through < https://gerrit.opencord.org > . It is also mirrored at
7
6
< https://github.com/opencord > .
8
7
9
8
You can download and use XOS either as part of CORD (see the
@@ -17,7 +16,51 @@ for additional information.
17
16
18
17
## Testing the XOS Core
19
18
20
- Run ` make test ` to run tests on the XOS codebase.
19
+ Run ` make test ` to run all tests on the XOS codebase. This is what happens
20
+ during the ` verify_xos_unit-test ` job in Jenkins.
21
21
22
- XOS's component libraries are stored in ` lib ` and are tested by running
23
- [ tox] ( https://tox.readthedocs.io ) in the individual library directories.
22
+ Running these tests requires:
23
+
24
+ - A Python 2.7, and one or more of Python 3.5, 3.6, or 3.7 development environment
25
+ - Requires a C build system and the python header files (under ubuntu 16.04, `apt
26
+ install python2-dev python3-dev build-essential`) to build packages with C
27
+ extensions.
28
+ - [ virtualenv] ( https://virtualenv.pypa.io )
29
+ - [ tox] ( https://tox.readthedocs.io ) version 3.2 or later
30
+
31
+ This will run 3 sets of test targets, which can also be run individually:
32
+
33
+ - ` lib-test ` : runs ` tox ` on each of the library modules stored in ` lib ` .
34
+ These are tested against both Python 2 and 3 by running both ` nose2 ` and
35
+ ` flake8 ` .
36
+
37
+ If you are making changes only to a specific library, it is recommended that
38
+ you run ` tox ` directly inside that modules directory, which should run much
39
+ more quickly than testing all the libraries.
40
+
41
+ - ` xos-test ` : runs ` nose2 ` to test the ` xos ` directory. This code is not yet
42
+ Python 3 or flake8 clean.
43
+
44
+ - ` migration-test ` : Runs the ` xos-migrate ` tool on the XOS core modules. This
45
+ verifies that the Django migrations have been properly created. If you've
46
+ changed ` xosgenx ` or the ` core.xproto ` file you may need to generate new
47
+ migrations. See ` docs/dev/xosmigrate.md ` for more information.
48
+
49
+ Additionally, a virtualenv will be created in ` venv-xos ` - you can `source
50
+ ./venv-xos/bin/activate` if you'd like to run tools like ` xos-migrate` manually.
51
+
52
+ ### Issues you may encounter when developing XOS
53
+
54
+ * Testing errors that complain about missing compliers or header files:
55
+ `src/twisted/test/raiser.c:4:20: fatal error: Python.h: No such file or
56
+ directory`*
57
+
58
+ You probably need to install a C build system and the Python development headers.
59
+
60
+ * After making changes to the requirements.txt or other files, the changes don't
61
+ seem to be register*
62
+
63
+ You might need to clean up any files left behind by previous development work.
64
+ ` make clean ` in the root Makefile should clean up most files. Additionally,
65
+ ` git clean -ixd ` will let you interactively remove all ignored files and
66
+ directories from your source tree.
0 commit comments