From ead0381593baa6ff4d98514a5040521093028b56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Vavru=C5=A1a?= <marek.vavrusa@nic.cz> Date: Tue, 4 Aug 2015 13:38:08 +0200 Subject: [PATCH] tests: added README.rst, libfaketime as a git submodule, fixed depends --- .gitmodules | 6 + Makefile | 1 - contrib/libfaketime | 1 + contrib/libfaketime/COPYING | 339 ------------------------ contrib/libfaketime/libfaketime.1.dylib | Bin 30508 -> 0 bytes contrib/libfaketime/libfaketime.so.1 | Bin 43688 -> 0 bytes contrib/libfaketime/libfaketimeMT.so.1 | Bin 44072 -> 0 bytes help.mk | 1 - platform.mk | 13 - tests/README.md | 3 - tests/README.rst | 30 +++ tests/integration.mk | 21 +- tests/tests.mk | 15 +- tests/unit.mk | 1 + 14 files changed, 64 insertions(+), 367 deletions(-) create mode 100644 .gitmodules create mode 160000 contrib/libfaketime delete mode 100644 contrib/libfaketime/COPYING delete mode 100644 contrib/libfaketime/libfaketime.1.dylib delete mode 100644 contrib/libfaketime/libfaketime.so.1 delete mode 100644 contrib/libfaketime/libfaketimeMT.so.1 delete mode 100644 tests/README.md create mode 100644 tests/README.rst diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..a279829bd --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "contrib/socket_wrapper"] + path = contrib/socket_wrapper + url = git://git.samba.org/socket_wrapper.git +[submodule "contrib/libfaketime"] + path = contrib/libfaketime + url = https://github.com/wolfcw/libfaketime.git diff --git a/Makefile b/Makefile index 215076115..5c0ca5463 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,6 @@ $(eval $(call find_python)) $(eval $(call find_lib,libmemcached,1.0)) $(eval $(call find_lib,hiredis)) $(eval $(call find_lib,socket_wrapper)) -$(eval $(call find_libfaketime)) # Work around luajit on OS X ifeq ($(PLATFORM), Darwin) diff --git a/contrib/libfaketime b/contrib/libfaketime new file mode 160000 index 000000000..18f5ec067 --- /dev/null +++ b/contrib/libfaketime @@ -0,0 +1 @@ +Subproject commit 18f5ec0671705bac190787a8612fc2a58b1be1d1 diff --git a/contrib/libfaketime/COPYING b/contrib/libfaketime/COPYING deleted file mode 100644 index d159169d1..000000000 --- a/contrib/libfaketime/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/contrib/libfaketime/libfaketime.1.dylib b/contrib/libfaketime/libfaketime.1.dylib deleted file mode 100644 index 8f5cee81b0fcff5edfef9dcccaeedc012c1a63cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30508 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 diff --git a/contrib/libfaketime/libfaketime.so.1 b/contrib/libfaketime/libfaketime.so.1 deleted file mode 100644 index 420893a82e05f70c4648b59d1fb02036e7dd4616..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43688 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 diff --git a/contrib/libfaketime/libfaketimeMT.so.1 b/contrib/libfaketime/libfaketimeMT.so.1 deleted file mode 100644 index e0c6ca8d27f9f182e7ecf265f218c6bda6c59cb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44072 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 diff --git a/help.mk b/help.mk index 8740ff6e0..1ceef2f30 100644 --- a/help.mk +++ b/help.mk @@ -21,5 +21,4 @@ info: $(info [$(HAS_libmemcached)] libmemcached (modules/memcached)) $(info [$(HAS_hiredis)] hiredis (modules/redis)) $(info [$(HAS_socket_wrapper)] socket_wrapper (lib)) - $(info [$(HAS_libfaketime)] libfaketime (lib)) $(info ) diff --git a/platform.mk b/platform.mk index f8e080512..74fb929f4 100644 --- a/platform.mk +++ b/platform.mk @@ -31,13 +31,6 @@ else endif endif -# Libfaketime name -ifeq ($(PLATFORM),Darwin) - libfaketime_name := libfaketime.1$(LIBEXT) -else - libfaketime_name := libfaketime$(LIBEXT).1 -endif - # Silent compilation ifeq ($(V),1) quiet = $($1) @@ -132,9 +125,3 @@ define find_python $(call have_lib,python) endef -# Find libfaketime -define find_libfaketime - libfaketime_LIBS := $(shell find ./contrib -name $(libfaketime_name) -print -quit 2> /dev/null) - $(call have_lib,libfaketime) -endef - diff --git a/tests/README.md b/tests/README.md deleted file mode 100644 index 9d21bec9b..000000000 --- a/tests/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## Unit tests - -## Integration tests diff --git a/tests/README.rst b/tests/README.rst new file mode 100644 index 000000000..e540c9129 --- /dev/null +++ b/tests/README.rst @@ -0,0 +1,30 @@ +Unit tests +========== + +The tests depend on cmocka_. + +.. code-block:: bash + + $ make check-unit + + +.. todo:: Writing tests. + +Integration tests +================= + +The tests depend on cwrap's `socket_wrapper`_, libfaketime_ and Python. +The libfaketime is included in ``contrib/libfaketime`` as it depends on rather latest version of it, +it is automatically synchronised with ``make``. + +Execute the tests by: + +.. code-block:: bash + + $ make check-integration + +.. todo:: Writing tests. + +.. _cmocka: https://cmocka.org/ +.. _`socket_wrapper`: https://cwrap.org/socket_wrapper.html +.. _libfaketime: https://cwrap.org/socket_wrapper.html diff --git a/tests/integration.mk b/tests/integration.mk index eb33fb8c8..fc96789e1 100644 --- a/tests/integration.mk +++ b/tests/integration.mk @@ -3,17 +3,28 @@ # CWRAP_PATH := $(socket_wrapper_LIBS) -FAKETIME_PATH := $(libfaketime_LIBS) # Targets +libfaketime_DIR := contrib/libfaketime +libfaketime := $(abspath $(libfaketime_DIR))/src/libfaketime$(LIBEXT).1 +# Platform-specific targets ifeq ($(PLATFORM),Darwin) - preload_syms := DYLD_FORCE_FLAT_NAMESPACE=1 DYLD_INSERT_LIBRARIES="$(FAKETIME_PATH):$(CWRAP_PATH)" + preload_syms := DYLD_FORCE_FLAT_NAMESPACE=1 DYLD_INSERT_LIBRARIES="$(libfaketime):$(CWRAP_PATH)" else - preload_syms := LD_PRELOAD="$(FAKETIME_PATH):$(CWRAP_PATH)" + preload_syms := LD_PRELOAD="$(libfaketime):$(CWRAP_PATH)" endif -check-integration: - $(call preload_LIBS) $(preload_syms) tests/test_integration.py tests/testdata +# Synchronize submodules +$(libfaketime_DIR): + @git submodule init +$(libfaketime_DIR)/Makefile: $(libfaketime_DIR) + @git submodule update +# Build libfaketime contrib +$(libfaketime): $(libfaketime_DIR)/Makefile + @$(MAKE) -C $(libfaketime_DIR) + +check-integration: $(libfaketime) + $(preload_LIBS) $(preload_syms) tests/test_integration.py tests/testdata .PHONY: check-integration diff --git a/tests/tests.mk b/tests/tests.mk index 5ee596aa4..8e5a09186 100644 --- a/tests/tests.mk +++ b/tests/tests.mk @@ -1,5 +1,5 @@ # Preload libraries -preload_PATH := tests +preload_PATH := tests:contrib/libfaketime/src ifeq ($(PLATFORM),Darwin) preload_LIBS := @DYLD_FORCE_FLAT_NAMESPACE=1 \ DYLD_LIBRARY_PATH="$(preload_PATH):${DYLD_LIBRARY_PATH}" @@ -10,14 +10,19 @@ endif # Unit tests ifeq ($(HAS_cmocka), yes) include tests/unit.mk +else +$(warning cmocka not found, skipping unit tests) +endif + # Integration tests -ifeq ($(HAS_python), yes) +ifeq ($(HAS_python)|$(HAS_socket_wrapper), yes|yes) include tests/integration.mk -endif # HAS_python -endif # HAS_cmocka +else +$(warning python or socket_wrapper not found, skipping integration tests) +endif # Targets tests: check-unit check-integration -tests-clean: $(foreach test,$(tests_BIN),$(test)-clean) libmock_calls-clean _test_integration-clean +tests-clean: $(foreach test,$(tests_BIN),$(test)-clean) .PHONY: tests tests-clean diff --git a/tests/unit.mk b/tests/unit.mk index 3b69799d6..c9cbb311b 100644 --- a/tests/unit.mk +++ b/tests/unit.mk @@ -26,6 +26,7 @@ tests_LIBS := $(libkres_TARGET) $(libkres_LIBS) $(cmocka_LIBS) # Make test binaries define make_test +$(1)_CFLAGS := -Wno-deprecated-declarations $(1)_SOURCES := tests/$(1).c $(1)_LIBS := $(tests_LIBS) $(1)_DEPEND := $(tests_DEPEND) -- GitLab