From tbordaz at redhat.com Tue Nov 5 17:53:32 2013 Content-Type: multipart/mixed; boundary="===============8371955408108445496==" MIME-Version: 1.0 From: thierry bordaz To: 389-devel at lists.fedoraproject.org Subject: [389-devel] Please review (take #2) ticket 47575: add test case for ticket47560 Date: Tue, 05 Nov 2013 18:53:22 +0100 Message-ID: <52793092.8030708@redhat.com> --===============8371955408108445496== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi All, This review is new proposal to implement CI test cases inside 389-DS. The layout of the tests will be: /dirsrvtests/ tickets/ ticket_abc_test.py ticket_xyz_test.py ... finalizer testsuites/ acl_test.py replication_test.py ... Each ticket_xyz_test.py will contain "framework" functions that will allocate a fresh installed instance then the test functions: "framework" functions are _ds_create_standalone, DSInstance class and ds_instance pytest fixture. tests functions are named 'test_ticket_xyz' with 'ds_instance' fixture as argument. py.test will call the test functions 'test_ticket_xyz'. Its argument is an instance (ds_instance) of DSInstance where ds_instance.instance is a connection to the instance. The first instance of DSInstance (first ticket being tested), get a newly created instance (e.g. slapd-standalone) and creates a backup of the instance (under /tmp/slapd-standalone.bck/backup_HHMMSS.tar.gz). Then when running others ticket test cases, the instance is reinitialized from the backup. So each ticket test case will have an instance almost like it was just created. py.test will discover all the ticket_xxx_test.py files and run them. In order to remove the created instances, py.test is called a second time to run finalizer.py. So a jenkins job script, will do something like: cd /dirsrvtests/tickets py.test -v # that will run all the ticket_xxx_tests and create the instance py.test -v finalizer.py Note: in order to check/backup/restore instance, new functions are added in lib389 ( checkInstanceBackupFS, instanceBackupFS, instanceRestoreFS), I will send an other review for them as it is not in 389-DS repos. https://fedorahosted.org/389/attachment/ticket/47575/0002-Ticket-47575-CI-t= est-add-test-case-for-ticket47560.patch = --===============8371955408108445496== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGh0bWw+CiAgPGhlYWQ+CgogICAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250 ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+CiAgPC9oZWFkPgogIDxib2R5IGJn Y29sb3I9IiNGRkZGRkYiIHRleHQ9IiMwMDAwMDAiPgogICAgPGZvbnQgZmFjZT0iVGltZXMgTmV3 IFJvbWFuLCBUaW1lcywgc2VyaWYiPkhpIEFsbCw8YnI+CiAgICAgIDxicj4KICAgIDwvZm9udD4K ICAgIDxibG9ja3F1b3RlPjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiwgVGltZXMsIHNlcmlm Ij5UaGlzIHJldmlldwogICAgICAgIGlzIG5ldyBwcm9wb3NhbCB0byBpbXBsZW1lbnQgQ0kgdGVz dCBjYXNlcyBpbnNpZGUgMzg5LURTLjxicj4KICAgICAgICBUaGUgbGF5b3V0IG9mIHRoZSB0ZXN0 cyB3aWxsIGJlOjxicj4KICAgICAgPC9mb250Pjxicj4KICAgICAgPGZvbnQgZmFjZT0iVGltZXMg TmV3IFJvbWFuLCBUaW1lcywgc2VyaWYiPjx0dD4mbHQ7aGVhZCZndDsvZGlyc3J2dGVzdHMvPC90 dD48dHQ+PGJyPgogICAgICAgIDwvdHQ+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyB0aWNrZXRzLzwv dHQ+PHR0Pjxicj4KICAgICAgICA8L3R0Pjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5i c3A7Jm5ic3A7IHRpY2tldF88L3R0PjwvZm9udD48dHQ+YWJjX3Rlc3Q8L3R0Pjxmb250CiAgICAg ICAgZmFjZT0iVGltZXMgTmV3IFJvbWFuLCBUaW1lcywgc2VyaWYiPjx0dD4ucHk8L3R0PjwvZm9u dD48YnI+CiAgICAgIDxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiwgVGltZXMsIHNlcmlmIj48 dHQ+PGZvbnQgZmFjZT0iVGltZXMKICAgICAgICAgICAgTmV3IFJvbWFuLCBUaW1lcywgc2VyaWYi Pjx0dD4mbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7IHRpY2tldF94eXpfdGVz dC5weTxicj4KICAgICAgICAgICAgPC90dD48L2ZvbnQ+PC90dD48dHQ+PGJyPgogICAgICAgIDwv dHQ+PHR0PiZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgLi4uPGJyPgogICAg ICAgICAgPGZvbnQgZmFjZT0iVGltZXMgTmV3IFJvbWFuLCBUaW1lcywgc2VyaWYiPiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L2ZvbnQ+ZmluYWxpemVyPGJy PgogICAgICAgIDwvdHQ+PHR0PiA8L3R0Pjx0dD48YnI+CiAgICAgICAgPC90dD48dHQ+Jm5ic3A7 Jm5ic3A7Jm5ic3A7IHRlc3RzdWl0ZXMvPC90dD48dHQ+PGJyPgogICAgICAgIDwvdHQ+PHR0PiZu YnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgYWNsX3Rlc3QucHk8L3R0Pjx0dD48 YnI+CiAgICAgICAgPC90dD48dHQ+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNw OyByZXBsaWNhdGlvbl90ZXN0LnB5PC90dD48dHQ+PGJyPgogICAgICAgIDwvdHQ+PHR0PiZuYnNw OyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgLi4uPC90dD48Zm9udCBmYWNlPSJUaW1l cyBOZXcgUm9tYW4sIFRpbWVzLAogICAgICAgICAgc2VyaWYiPjxicj4KICAgICAgICA8L2ZvbnQ+ PGJyPgogICAgICAgIEVhY2ggdGlja2V0X3h5el90ZXN0LnB5IHdpbGwgY29udGFpbiAiZnJhbWV3 b3JrIiBmdW5jdGlvbnMgdGhhdAogICAgICAgIHdpbGwgYWxsb2NhdGUgYSBmcmVzaCBpbnN0YWxs ZWQgaW5zdGFuY2UgdGhlbiB0aGUgdGVzdAogICAgICAgIGZ1bmN0aW9uczo8YnI+CiAgICAgICAg ImZyYW1ld29yayIgZnVuY3Rpb25zIGFyZSBfZHNfY3JlYXRlX3N0YW5kYWxvbmUsIERTSW5zdGFu Y2UKICAgICAgICBjbGFzcyBhbmQgZHNfaW5zdGFuY2UgcHl0ZXN0IGZpeHR1cmUuPGJyPgogICAg ICAgIHRlc3RzIGZ1bmN0aW9ucyBhcmUgbmFtZWQgJ3Rlc3RfdGlja2V0X3h5eicgd2l0aCAnZHNf aW5zdGFuY2UnCiAgICAgICAgZml4dHVyZSBhcyBhcmd1bWVudC48YnI+CiAgICAgICAgPGJyPgog ICAgICAgIHB5LnRlc3Qgd2lsbCBjYWxsIHRoZSB0ZXN0IGZ1bmN0aW9ucyAndGVzdF90aWNrZXRf eHl6Jy4gSXRzCiAgICAgICAgYXJndW1lbnQgaXMgYW4gaW5zdGFuY2UgKGRzX2luc3RhbmNlKSBv ZiBEU0luc3RhbmNlIHdoZXJlCiAgICAgICAgZHNfaW5zdGFuY2UuaW5zdGFuY2UgaXMgYSBjb25u ZWN0aW9uIHRvIHRoZSBpbnN0YW5jZS48YnI+CiAgICAgICAgPGJyPgogICAgICAgIFRoZSBmaXJz dCBpbnN0YW5jZSBvZiBEU0luc3RhbmNlIChmaXJzdCB0aWNrZXQgYmVpbmcgdGVzdGVkKSwKICAg ICAgICBnZXQgYSBuZXdseSBjcmVhdGVkIGluc3RhbmNlIChlLmcuIHNsYXBkLXN0YW5kYWxvbmUp IGFuZCBjcmVhdGVzCiAgICAgICAgYSBiYWNrdXAgb2YgdGhlIGluc3RhbmNlICh1bmRlcgogICAg ICAgIC90bXAvc2xhcGQtc3RhbmRhbG9uZS5iY2svYmFja3VwX0hITU1TUy50YXIuZ3opLjxicj4K ICAgICAgICBUaGVuIHdoZW4gcnVubmluZyBvdGhlcnMmbmJzcDsgdGlja2V0IHRlc3QgY2FzZXMs IHRoZSBpbnN0YW5jZSBpcwogICAgICAgIHJlaW5pdGlhbGl6ZWQgZnJvbSB0aGUgYmFja3VwLjxi cj4KICAgICAgICBTbyBlYWNoIHRpY2tldCB0ZXN0IGNhc2Ugd2lsbCBoYXZlIGFuIGluc3RhbmNl IGFsbW9zdCBsaWtlIGl0CiAgICAgICAgd2FzIGp1c3QgY3JlYXRlZC48YnI+CiAgICAgICAgPGJy PgogICAgICAgIHB5LnRlc3Qgd2lsbCBkaXNjb3ZlciBhbGwgdGhlIHRpY2tldF94eHhfdGVzdC5w eSBmaWxlcyBhbmQgcnVuCiAgICAgICAgdGhlbS48YnI+CiAgICAgICAgSW4gb3JkZXIgdG8gcmVt b3ZlIHRoZSBjcmVhdGVkIGluc3RhbmNlcywgcHkudGVzdCBpcyBjYWxsZWQgYQogICAgICAgIHNl Y29uZCB0aW1lIHRvIHJ1biBmaW5hbGl6ZXIucHkuPGJyPgogICAgICAgIFNvIGEgamVua2lucyBq b2Igc2NyaXB0LCB3aWxsIGRvIHNvbWV0aGluZyBsaWtlOjxicj4KICAgICAgPC9mb250PgogICAg ICA8YmxvY2txdW90ZT48Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4sIFRpbWVzLCBzZXJpZiI+ Y2QKICAgICAgICAgICZsdDtoZWFkJmd0Oy9kaXJzcnZ0ZXN0cy90aWNrZXRzPGJyPgogICAgICAg ICAgcHkudGVzdCAtdiZuYnNwOyZuYnNwOyAjIHRoYXQgd2lsbCBydW4gYWxsIHRoZSB0aWNrZXRf eHh4X3Rlc3RzIGFuZAogICAgICAgICAgY3JlYXRlIHRoZSBpbnN0YW5jZTxicj4KICAgICAgICAg IHB5LnRlc3QgLXYgZmluYWxpemVyLnB5PGJyPgogICAgICAgIDwvZm9udD48L2Jsb2NrcXVvdGU+ CiAgICAgIDxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiwgVGltZXMsIHNlcmlmIj48YnI+CiAg ICAgICAgTm90ZTogaW4gb3JkZXIgdG8gY2hlY2svYmFja3VwL3Jlc3RvcmUgaW5zdGFuY2UsIG5l dyBmdW5jdGlvbnMKICAgICAgICBhcmUgYWRkZWQgaW4gbGliMzg5ICg8L2ZvbnQ+PGJyPgogICAg ICA8Zm9udCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4sIFRpbWVzLCBzZXJpZiI+Y2hlY2tJbnN0YW5j ZUJhY2t1cEZTLAogICAgICAgIGluc3RhbmNlQmFja3VwRlMsIGluc3RhbmNlUmVzdG9yZUZTKSwg SSB3aWxsIHNlbmQgYW4gb3RoZXIKICAgICAgICByZXZpZXcgZm9yIHRoZW0gYXMgaXQgaXMgbm90 IGluIDM4OS1EUyByZXBvcy48YnI+CiAgICAgIDwvZm9udD48L2Jsb2NrcXVvdGU+CiAgICA8Zm9u dCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4sIFRpbWVzLCBzZXJpZiI+PGEgY2xhc3M9Im1vei10eHQt bGluay1mcmVldGV4dCIgaHJlZj0iaHR0cHM6Ly9mZWRvcmFob3N0ZWQub3JnLzM4OS9hdHRhY2ht ZW50L3RpY2tldC80NzU3NS8wMDAyLVRpY2tldC00NzU3NS1DSS10ZXN0LWFkZC10ZXN0LWNhc2Ut Zm9yLXRpY2tldDQ3NTYwLnBhdGNoIj5odHRwczovL2ZlZG9yYWhvc3RlZC5vcmcvMzg5L2F0dGFj aG1lbnQvdGlja2V0LzQ3NTc1LzAwMDItVGlja2V0LTQ3NTc1LUNJLXRlc3QtYWRkLXRlc3QtY2Fz ZS1mb3ItdGlja2V0NDc1NjAucGF0Y2g8L2E+PC9mb250PgogIDwvYm9keT4KPC9odG1sPgo= --===============8371955408108445496==--