{"push_id":587394650,"size":18,"distinct_size":18,"ref":"refs/heads/executor","head":"20ff6dda39cbec6b41367b75b29fd278467b96da","before":"9f419feb2a8326cdf569f05785f3f1f2cf0554e6","commits":[{"sha":"ad9f81588e8487fcdb4ae040d82cef4955034934","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@meroh.net","name":"Julio Merino"},"message":"Restore the utils/stacktrace module\n\nRetrieve the code of the previous utils/stacktrace module removed in\nrevision c899458b7250ebee0c9d39c9888116aa19a555cI and also merge the\ntwo fixes in revisions 5ac092ebfb03a643f87b99d325d8e9aa9159a912 and\n179b573ae639886c22809df77019e59e28055bca.  This C++ implementation\nwill be used by the new executor module.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/ad9f81588e8487fcdb4ae040d82cef4955034934"},{"sha":"4692768c58b915604aab3cf0a14c2ddc4abb7b1a","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@google.com","name":"Julio Merino"},"message":"Grant search permissions to temporary dirs\n\nThe temporary directories we create in Kyua are used to put test work\ndirectories in them.  The default permissions of such directories are\n0700 as given by mkdtemp(3).\n\nUnfortunately, we have to support the feature of ATF test cases that\nallows dropping privileges.  When we drop privileges on behalf of ATF\ntest cases, we must make sure that the unprivileged code can access\nfiles to the work directory using absolute paths (because we do that\neverywhere and it's reasonable to expect this to be done by tests).\n\nTherefore, change our temporary directory creation to use mode 0711\nso that such absolute paths work.\n\nThis had not been a problem until now with the new executor code.\nThe issue with the new executor is that it creates a single work\ndirectory that acts as the \"root\" for all other subdirectory creations.\nThe top-level temporary directory may be owned by root and has\npermissions of 0700, preventing test cases from accessing their\n(unprotected) work subdirectory.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/4692768c58b915604aab3cf0a14c2ddc4abb7b1a"},{"sha":"10882f1374e80161d011f7b050a1199d2dcfbdaa","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@meroh.net","name":"Julio Merino"},"message":"Add the engine::isolation module\n\nThis new module provides the isolate_child function which cleans up the\ncaller's process in preparation to run a test in a sane environment.\nYes, this module used to exist before the testers and it's time to bring\nit back, although in a slightly different form.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/10882f1374e80161d011f7b050a1199d2dcfbdaa"},{"sha":"a22d7d07a8d4b8cc0e4dcf8e6b0f16e829f21394","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@meroh.net","name":"Julio Merino"},"message":"Determine test case based on the helper's name\n\nIf the TEST_CASE environment variable is not provided to the\ntest_case_plain_helpers test program, attempt to guess the test case\nname from the program's basename.  Do this so that we can execute\nvarious instances of these helpers at the same time while each does\na different thing.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/a22d7d07a8d4b8cc0e4dcf8e6b0f16e829f21394"},{"sha":"7abf57b7fcb05d2128a6489b52737fb0cf61df9b","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@google.com","name":"Julio Merino"},"message":"Forcibly terminate children on signal reception\n\nSend SIGKILL to all children process groups when we receive an interrupt\ninstead of gracefully redelivering the signal we got.  We will start to\nrun test programs directly without the testers indirection, so we need\nthis.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/7abf57b7fcb05d2128a6489b52737fb0cf61df9b"},{"sha":"0c52c06db6f7ee23ad1277db563e3789a7ef1c78","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@meroh.net","name":"Julio Merino"},"message":"Ensure the build_root of test programs is absolute\n\nThe test_program::absolute_path method provides a mechanism to retrieve\nthe absolute path to the test program.  However, such call relies on the\nvalue of the current directory... which may have changed since the\ntest_program object was constructed.\n\nIn general, changing the current directory of a process is a bad idea\nand we only do this right before we exec(3) the binary to minimize\nissues.  But that's where the problem may show up: when we try to\nexec(3) the program after having entered the test's work directory.\nThis had not been an issue before but it becomes a problem with the new\nexecutor implementation.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/0c52c06db6f7ee23ad1277db563e3789a7ef1c78"},{"sha":"95a425b97439ca4f382b5b1de69b2624ffbbb6b7","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@google.com","name":"Julio Merino"},"message":"Add executor module without backends\n\nThis shiny-new module provides a fine-grained interface to execute test\ncases in a multiprogrammed manner.  The new module is not yet hooked\nanywhere other than the build.\n\nThe executor is an interface-agnostic component: this module provides\nhooks so that separate modules can provide the missing bits to run test\nprograms that implement several interfaces.  None of such modules is\nincluded in this commit; those will come later.\n\nThis new module is intended to replace both engine::runner and all of\nthe C-based testers code.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/95a425b97439ca4f382b5b1de69b2624ffbbb6b7"},{"sha":"ebc4bd413913b39abde3ee26a628cf9ccc020476","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@google.com","name":"Julio Merino"},"message":"Add the \"plain\" backend for the executor\n\nThis commit implements a plain module that provides support to run\nplain-based test programs through the new executor module.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/ebc4bd413913b39abde3ee26a628cf9ccc020476"},{"sha":"f1958637f793c587b0e6d25a2313ad027a563208","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@google.com","name":"Julio Merino"},"message":"Restore ATF-specific test results handling\n\nCommit 5acb87a30f3640fbe528709ecc08bf974ab24d05 removed all code in\nengine/atf_iface.  This commit restores the previous \"results\" module\nthat existed in that directory and modernizes its style a little bit.\n\nWe need to resurrect C++ parsing of ATF-specific test results for the\nnew executor code.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/f1958637f793c587b0e6d25a2313ad027a563208"},{"sha":"20bd1d7a7aaf60d0023ce9833fc195bda92b71f8","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@google.com","name":"Julio Merino"},"message":"Add the \"atf\" backend for the executor\n\nThis commit implements an atf module that provides support to run\nATF-based test programs through the new executor module.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/20bd1d7a7aaf60d0023ce9833fc195bda92b71f8"},{"sha":"6c51434761e67ffb7a59e549011026cc16f50c8a","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@google.com","name":"Julio Merino"},"message":"Add the engine/tap_parser module\n\nThis new module provides a C++ implementation of the TAP parser\npreviously in testers/tap_parser.  The semantics of both parsers are\ncurrently the same as both currently pass the same set of tests.\n\nHowever, the new C++ implementation is much easier to deal with than\nthe C one.  This should allow us to later improve the TAP language\naccepted by the parser to better match potential restrictions in the\ndefinition of the TAP specification.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/6c51434761e67ffb7a59e549011026cc16f50c8a"},{"sha":"7da1d95a8961fcca676f207a4639b6836480a81f","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@google.com","name":"Julio Merino"},"message":"Add the \"tap\" backend for the executor\n\nThis commits implements a tap module that provides support to run\nTAP-compliant test programs through the new executor module.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/7da1d95a8961fcca676f207a4639b6836480a81f"},{"sha":"78dd8277a4abc647cb2ed6c90c22c36d3fac0a3a","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@google.com","name":"Julio Merino"},"message":"Register executor interfaces in main\n\nAs part of Kyua's initialization phase, register all known executor\ninterfaces.  It is a bit weird to do this in main() and for all\ncommands, but for now this is the easiest thing to do.\n\nAlso, because registering an interface has no side-effects other than\na memory allocation, it is not a big deal to do so in main().","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/78dd8277a4abc647cb2ed6c90c22c36d3fac0a3a"},{"sha":"73aa4591803a32f3ca432b90da718526a6b5a77c","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@meroh.net","name":"Julio Merino"},"message":"Make the 'kyua test' tests stable order-wise\n\nSort the output of 'kyua test' in its integration tests so that the\nunstable ordering of the output lines caused by parallel execution\ndoes not interfere with our validation against golden contents.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/73aa4591803a32f3ca432b90da718526a6b5a77c"},{"sha":"be5bd8efa38532fb62c073643d73d139276b8a60","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@google.com","name":"Julio Merino"},"message":"Add the positive_int_node type to utils/config","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/be5bd8efa38532fb62c073643d73d139276b8a60"},{"sha":"8afd2bd35b13bf7a66d873831076e14240204415","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@google.com","name":"Julio Merino"},"message":"Add a new num_test_slots configuration property\n\nThis new variable specifies the maximum number of test cases that can be\nrun in parallel.  Currently hardcoded to a value greater than 1 but in\nthe future we may play tricks to autodetermine a reasonable number.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/8afd2bd35b13bf7a66d873831076e14240204415"},{"sha":"8cf84a769bb6a5331ae0b2bfb8335af011a71678","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@meroh.net","name":"Julio Merino"},"message":"Modify run_tests to use executor\n\nChange the run_tests driver to use the new executor module to run the\ntest cases in parallel, if desired.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/8cf84a769bb6a5331ae0b2bfb8335af011a71678"},{"sha":"20ff6dda39cbec6b41367b75b29fd278467b96da","author":{"email":"8197936e0ee1e0b1666af94eb3119cebebdf7915@google.com","name":"Julio Merino"},"message":"Prevent mixing lines in cmd_test's output\n\nWhen running test cases in parallel, delay the output of the test case\nname until we have computed its result.  This prevents incomplete lines\nfrom being mixed in the output when we are running various tests at\nonce.\n\nThis is suboptimal but is the easiest to do for now.  Ideally, if\nbackgrounded tests take too long, we would display a partial output that\nwe would correct once we got the results.  But doing that is hard for\nnow.","distinct":true,"url":"https://api.github.com/repos/jmmv/kyua/commits/20ff6dda39cbec6b41367b75b29fd278467b96da"}]}