Chromium Code Reviews| Index: README.devtest |
| diff --git a/README.devtest b/README.devtest |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..b17f73c929544f89eba3c1e77404981f79dd9a7c |
| --- /dev/null |
| +++ b/README.devtest |
| @@ -0,0 +1,89 @@ |
| + |
| +Entd Development/Test Cycle |
| +=========================== |
| + |
| +Most entd features and fixes can be devloped and unit tested entirely in the |
|
gauravsh
2010/07/21 17:50:37
s/devloped/developed/
|
| +source directory of entd while in your chroot. Entd can be built for your |
| +target platform using only the scons file (no need for emerge or ebuild), and |
| +can be launched using scripts/run_32bit.sh, or the run_tests.sh script from |
| +Entd. |
| + |
| +To build an x86 versioin of entd, run... |
| + |
| + $ cd platform/entd |
| + $ scons CHOST=i686-pc-linux-gnu SYSROOT=/build/x86-generic/ |
| + |
| +This will create a platform/entd/out/i686-pc-linux-gnu/ directory and place |
| +the target executable there. |
| + |
| +Then, to launch entd... |
| + |
| + $ ../../scripts/run_32bit.sh ./out/i686-pc-linux-gnu/entd |
| + [0721/093224:INFO:main.cc(130)] Starting entd |
| + ... |
| + [0721/093224:ERROR:entd.cc(471)] Can't determine hostname from username: |
| + [0721/093224:INFO:main.cc(208)] Exiting entd with code: 1 |
| + |
| +Entd takes a number of command line arguments. The error message we just |
| +got is a sign that we forgot --username. In order to pass arguments through |
| +the run_32bit.sh script, we need to separate the script's arguments from |
| +entd's, using --, as in... |
| + |
| + $ ../../scripts/run_32bit.sh ./out/i686-pc-linux-gnu/entd -- \ |
| + --username=user@example.com |
| + [0721/094034:INFO:main.cc(130)] Starting entd |
| + ... |
| + [0721/094034:ERROR:entd.cc(531)] No policy file. |
| + [0721/094034:INFO:main.cc(208)] Exiting entd with code: 1 |
| + |
| +Here we've failed to start because we haven't specified a policy file, we can |
| +do that using --policy. Before that, we'll introduce a shell variable to make |
| +the command lines slightly shorter... |
| + |
| + $ ENTD="../../scripts/run_32bit.sh ./out/i686-pc-linux-gnu/entd --" |
| + $ $ENTD --username=user@example.com --policy=test_data/hello-world.js |
| + |
| +This time you'll notice that entd doesn't exit on its own. This is an |
| +unfortunate side effect of the way it catches signals. It's not an issue |
| +in production, where we expect entd to keep running, but can be troublesome |
| +for testing. You can add the --allow-dirty-exit, which prevents entd from |
| +registering to handle signal events, and therefore allows it to exit when |
| +the policy execution completes. Press Ctrl-C to terminate entd, and then |
| +run... |
| + |
| + $ $ENTD --username=user@example.com --policy=test_data/hello-world.js \ |
| + --allow-dirty-exit |
| + [0721/094725:INFO:main.cc(130)] Starting entd |
| + hello world |
| + [0721/094725:INFO:entd.cc(540)] Policy loaded. |
| + [0721/094725:INFO:main.cc(208)] Exiting entd with code: 0 |
| + |
| +And now you've had your first successful run of the Enterprise Daemon. Go you. |
| + |
| +For now, entd command line arguments are only documented in source. You'll |
| +have to read through the top of main.cc for usage information, or read through |
| +the run_tests.sh script for examples. |
| + |
| +The run_tests.sh script runs the entd unit tests, as you might have guessed. |
| +It's a little janky, but it gets the job done. It's simple to start, and looks |
| +something like this... |
| + |
| + $ ./run_tests.sh |
| + PASS: hello-world.js |
| + PASS: bad-onload.js |
| + ... |
| + PASS: simple-shutdown.js |
| + PASS: simple-callback.js |
| + |
| + Tests completed: 28 |
| + TESTS FAILED: 0 |
| + |
| +Many of the unit tests require you to have PKCS11 set up in your development |
| +environment. See the README.pkcs11 file in this directory for details on how |
| +to get that running. |
| + |
| +You should make sure to write new unit tests for any new functionality, |
| +regression tests for bug fixes, and ensure that all tests pass before submitting |
| +a CL for review. |
| + |
| + |