Compare commits
	
		
			No commits in common. "c9s" and "c8s" have entirely different histories.
		
	
	
		
	
		
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1 +1 @@ | |||||||
| zip30.tar.gz | /zip30.tar.gz | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| --- !Policy | --- !Policy | ||||||
| product_versions: | product_versions: | ||||||
|   - rhel-9 |   - rhel-8 | ||||||
| decision_context: osci_compose_gate | decision_context: osci_compose_gate | ||||||
| rules: | rules: | ||||||
|   - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} |   - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								sources
									
									
									
									
									
								
							| @ -1 +1 @@ | |||||||
| 7b74551e63f8ee6aab6fbc86676c0d37  zip30.tar.gz | SHA512 (zip30.tar.gz) = c1c3d62bf1426476c0f9919b568013d6d7b03514912035f09ee283226d94c978791ad2af5310021e96c4c2bf320bfc9d0b8f4045c48e4667e034d98197e1a9b3 | ||||||
|  | |||||||
| @ -1,55 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| passed=0 |  | ||||||
| subtests=(basic/* unzip/* zip/*) |  | ||||||
| total=${#subtests[@]} |  | ||||||
| skipped=0 |  | ||||||
| 
 |  | ||||||
| for subtest in ${subtests[@]} |  | ||||||
| do |  | ||||||
|   #tests to be skipped |  | ||||||
|   if [ $subtest == "zip/largefiles" ] |  | ||||||
|   then |  | ||||||
|      ((skipped++)) |  | ||||||
|      continue |  | ||||||
|   fi |  | ||||||
| 	pushd $subtest >/dev/null |  | ||||||
| 	./test.sh |  | ||||||
| 	result=$? |  | ||||||
| 	echo "Test $subtest result: $result" |  | ||||||
| 	if [ "$result" == "0" ] |  | ||||||
|        	then |  | ||||||
| 		((passed++)) |  | ||||||
| 	fi |  | ||||||
| 	popd >/dev/null |  | ||||||
| done |  | ||||||
| 
 |  | ||||||
| echo "Passed $passed/$total tests" |  | ||||||
| echo "Skipped $skipped/$total tests" |  | ||||||
| [[ $total == $((passed + skipped)) ]] || exit 1 |  | ||||||
| @ -1,38 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| ls ./out.zip > /dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in > /dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f ./in |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip > /dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,42 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip ./out" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| zip ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| unzip -c ./out.zip >./out || exit 1 |  | ||||||
| 
 |  | ||||||
| (cat ./out |grep "Archive:[ \t]*./out.zip" >/dev/null) || exit 1 |  | ||||||
| (cat ./out |grep "[ \t]*extracting:[ \t]*in" >/dev/null) || exit 1 |  | ||||||
| (cat ./out |grep "Hello World" >/dev/null) || exit 1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,43 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip ./out" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| UNZIP=-p unzip ./out.zip >./out || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./out ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| exit 1 |  | ||||||
| @ -1,43 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip ./dir" |  | ||||||
| rm -rf $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| mkdir ./dir |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| rm -f ./in |  | ||||||
| 
 |  | ||||||
| unzip -d dir ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./dir/in ./exp >/dev/null || exit 1  |  | ||||||
| 
 |  | ||||||
| rm -rf $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./in2 ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./in2 |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in ./in2 >/dev/null || exit 1 |  | ||||||
| rm -f ./in ./in2 |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| ls ./in >/dev/null || exit 1 |  | ||||||
| ls ./in2 2>/dev/null && exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| echo "Hello" > ./in |  | ||||||
| 
 |  | ||||||
| touch --date="last month" ./in |  | ||||||
| 
 |  | ||||||
| unzip -of ./out.zip >/dev/null || exit 1 |  | ||||||
| diff ./exp ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,43 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip ./dir" |  | ||||||
| rm -rf $files |  | ||||||
| mkdir dir |  | ||||||
| echo "Hello World" > ./dir/in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./dir ./dir/in >/dev/null || exit 1 |  | ||||||
| rm -rf ./dir |  | ||||||
| 
 |  | ||||||
| unzip -j ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./exp ./in || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,43 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| 
 |  | ||||||
| unzip -n ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,43 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| echo "Hello" > ./in |  | ||||||
| 
 |  | ||||||
| unzip -o ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,42 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip -P password ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| rm -f ./in |  | ||||||
| 
 |  | ||||||
| unzip -P password ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,42 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip ./out" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| unzip -p ./out.zip  >./out || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./out ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,48 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./in2 ./exp ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./in2 |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in ./in2 >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| echo "Hello" > ./in |  | ||||||
| touch --date="last month" ./in || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f ./in2 |  | ||||||
| 
 |  | ||||||
| unzip -ou ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp || exit 1 |  | ||||||
| diff ./in2 ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./in2 ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./in2 |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in ./in2 >/dev/null || exit 1 |  | ||||||
| rm -f ./in ./in2 |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip -x in2 >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| ls ./in >/dev/null || exit 1 |  | ||||||
| ls ./in2 2>/dev/null && exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,48 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./in2 ./exp2 ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| echo "Hello World 2" > ./in2 |  | ||||||
| echo "Hello World 2" > ./exp2 |  | ||||||
| 
 |  | ||||||
| zip out.zip ./in >/dev/null || exit 1 |  | ||||||
| zip out.zip ./in2 >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f ./in ./in2 |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp || exit 1 |  | ||||||
| diff ./in2 ./exp2 || exit 1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,45 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip ./out2.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip out.zip ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f ./in |  | ||||||
| 
 |  | ||||||
| zip -U ./out.zip in --out ./out2.zip >/dev/null || exit 1 |  | ||||||
| unzip ./out2.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,49 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./in2 ./exp2 ./out.zip ./list" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./in2 |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in ./in2 >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f ./in ./in2 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| zip -d ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| ls ./in 2>/dev/null && exit 1 |  | ||||||
| diff ./in2 ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,48 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./in2 ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./in2 |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in ./in2 >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| export ZIPOPT="-d" |  | ||||||
| zip ./out.zip in2 >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f ./in ./in2 |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp || exit 1 |  | ||||||
| ls ./in2 2>/dev/null && exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./in2 ./out.zip" |  | ||||||
| rm -fr $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./in2 |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in ./in2 -x ./in2 >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f ./in ./in2 >/dev/null |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1  |  | ||||||
| 
 |  | ||||||
| ls ./in >/dev/null || exit 1 |  | ||||||
| ls ./in2 2>/dev/null && exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,53 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./in2 ./exp2 ./out.zip ./list" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| echo "Hello World 2" > ./in2 |  | ||||||
| echo "Hello World 2" > ./exp2 |  | ||||||
| cat << EOF > ./list |  | ||||||
| ./in |  | ||||||
| ./in2 |  | ||||||
| EOF |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| zip -@ ./out.zip <./list >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f ./in ./in2 |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp || exit 1 |  | ||||||
| diff ./in2 ./exp2 || exit 1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,53 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./in2 ./exp2 ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| echo "Hello World 2" > ./in2 |  | ||||||
| echo "Hello World 2" > ./exp2 |  | ||||||
| 
 |  | ||||||
| touch --date "last month" ./in |  | ||||||
| 
 |  | ||||||
| zip out.zip ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| echo "Hello World 2" > ./in |  | ||||||
| 
 |  | ||||||
| zip -f ./out.zip ./in ./in2 |  | ||||||
| rm -f ./in ./in2 |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp2 || exit 1 |  | ||||||
| ls ./in2 2>/dev/null && exit 1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,46 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in.in ./exp ./in2.notin ./exp2 ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in.in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| echo "Hello World 2" > ./in2.notin |  | ||||||
| echo "Hello World 2" > ./exp2 |  | ||||||
| 
 |  | ||||||
| zip out.zip ./in.in ./in2.notin -i \*.in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f ./in.in ./in2.notin |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in.in ./exp || exit 1 |  | ||||||
| ls in2.notin 2>/dev/null && exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip ./dir" |  | ||||||
| rm -fr $files |  | ||||||
| mkdir dir |  | ||||||
| echo "Hello World" > ./dir/in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip -j ./out.zip ./dir/in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -rf ./dir |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip" |  | ||||||
| rm -fr $files |  | ||||||
| dd if=/dev/urandom of=./exp bs=10M count=600 iflag=fullblock 2>/dev/null |  | ||||||
| 
 |  | ||||||
| cp ./exp ./in |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| rm -f ./in |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./exp ./in |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,44 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip " |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip -m ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| ls ./in 2>/dev/null && exit 1 |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,37 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip" |  | ||||||
| rm -fr $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,46 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip ./dir ./subdir" |  | ||||||
| rm -fr $files |  | ||||||
| mkdir -p ./dir/subdir |  | ||||||
| echo "Hello World" > ./dir/in |  | ||||||
| echo "Hello World" > ./dir/subdir/in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip -r ./out.zip ./dir >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -rf ./dir |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./dir/in ./exp || exit 1 |  | ||||||
| diff ./dir/subdir/in ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -rf $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,49 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip ./dir ./subdir" |  | ||||||
| rm -fr $files |  | ||||||
| mkdir -p ./dir/subdir |  | ||||||
| echo "Hello World" > ./dir/in.in |  | ||||||
| echo "Hello World" > ./dir/in.notin |  | ||||||
| echo "Hello World" > ./dir/subdir/in.in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip -R ./out.zip "*.in" >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -rf ./dir |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./dir/in.in ./exp || exit 1 |  | ||||||
| diff ./dir/subdir/in.in ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| ls ./dir/in.notin >/dev/null 2>/dev/null && exit 1 |  | ||||||
| 
 |  | ||||||
| rm -rf $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,45 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| zip ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f ./in |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,50 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip" |  | ||||||
| rm -fr $files |  | ||||||
| 
 |  | ||||||
| (dd if=/dev/urandom bs=1 count=50000 2>/dev/null | base64 -w 0) >./exp |  | ||||||
| 
 |  | ||||||
| for i in {0..9} |  | ||||||
| do |  | ||||||
|     rm -f ./in ./out.zip |  | ||||||
|     cp ./exp ./in |  | ||||||
|     zip -$i ./out.zip ./in >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
|     rm -f ./in |  | ||||||
| 
 |  | ||||||
|     unzip ./out.zip >/dev/null || exit 1 |  | ||||||
|     diff ./in ./exp || exit 1 |  | ||||||
|     rm -f ./out.zip ./in |  | ||||||
| done |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,54 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip ./out.z01 ./out.z02 ./out2.zip" |  | ||||||
| rm -fr $files |  | ||||||
| 
 |  | ||||||
| for i in {1..100000} |  | ||||||
| do |  | ||||||
|     echo "Hello World" >> ./in |  | ||||||
|     echo "Hello World" >> ./exp |  | ||||||
| done |  | ||||||
| 
 |  | ||||||
| zip -Z store -s 500k ./out.zip ./in >/dev/null |  | ||||||
| 
 |  | ||||||
| rm -f ./in |  | ||||||
| 
 |  | ||||||
| ls ./out.z01 >/dev/null|| exit 1 |  | ||||||
| ls ./out.z02 >/dev/null|| exit 1 |  | ||||||
| ls ./out.zip >/dev/null|| exit 1 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| zip -o -s- ./out.zip -O ./out2.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| unzip ./out2.zip >/dev/null || exit 1 |  | ||||||
| diff ./in ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,37 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| exit 1 |  | ||||||
| @ -1,45 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip ./link" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./exp |  | ||||||
| 
 |  | ||||||
| ln -s ./in ./link |  | ||||||
| zip --symlinks ./out.zip ./in ./link >/dev/null || exit 1 |  | ||||||
| rm -f ./in ./link |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| (ls -l ./link | grep "lrwxrwxrwx") >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./link ./exp || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,53 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Copyright (C) 2019  Jakub Martisko <jamartis at redhat dot com> |  | ||||||
| 
 |  | ||||||
| # All rights reserved. |  | ||||||
| 
 |  | ||||||
| # Redistribution and use in source and binary forms, with or without |  | ||||||
| # modification, are permitted provided that the following conditions are |  | ||||||
| # met: |  | ||||||
| 
 |  | ||||||
| #     * Redistributions of source code must retain the above copyright |  | ||||||
| # notice, this list of conditions and the following disclaimer. |  | ||||||
| #     * Redistributions in binary form must reproduce the above |  | ||||||
| # copyright notice, this list of conditions and the following disclaimer |  | ||||||
| # in the documentation and/or other materials provided with the |  | ||||||
| # distribution. |  | ||||||
| 
 |  | ||||||
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |  | ||||||
| # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |  | ||||||
| # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |  | ||||||
| # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |  | ||||||
| # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |  | ||||||
| # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |  | ||||||
| # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |  | ||||||
| # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  | ||||||
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  | ||||||
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  | ||||||
| 
 |  | ||||||
| files="./in ./exp ./out.zip ./in2 ./exp2" |  | ||||||
| rm -f $files |  | ||||||
| echo "Hello" > ./in |  | ||||||
| echo "Hello" > ./in2 |  | ||||||
| echo "Hello" > ./exp |  | ||||||
| echo "Hello World" > ./exp2 |  | ||||||
| 
 |  | ||||||
| zip ./out.zip ./in ./in2 >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| echo "Hello World" > ./in |  | ||||||
| echo "Hello World" > ./in2 |  | ||||||
| touch --date="last month" ./in |  | ||||||
| touch --date="next month" ./in2 |  | ||||||
| 
 |  | ||||||
| zip -u ./out.zip ./in ./in2 >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f ./in ./in2 |  | ||||||
| 
 |  | ||||||
| unzip ./out.zip >/dev/null || exit 1 |  | ||||||
| 
 |  | ||||||
| diff ./in ./exp || exit 1 |  | ||||||
| diff ./in2 ./exp2 || exit 1 |  | ||||||
| 
 |  | ||||||
| rm -f $files |  | ||||||
| exit 0 |  | ||||||
| @ -1,19 +0,0 @@ | |||||||
| --- |  | ||||||
| - hosts: localhost |  | ||||||
|   vars: |  | ||||||
|   - artifacts: ./artifacts |  | ||||||
|   remote_user: root |  | ||||||
|   roles: |  | ||||||
|   - role: standard-test-basic |  | ||||||
|     tags: |  | ||||||
|      - atomic |  | ||||||
|      - classic |  | ||||||
|      - container |  | ||||||
|     tests: |  | ||||||
|      - simple: |  | ||||||
|         dir: gating |  | ||||||
|         run: ./all.sh |  | ||||||
|     required_packages: |  | ||||||
|      - zip |  | ||||||
|      - unzip |  | ||||||
|      - coreutils |  | ||||||
| @ -1,154 +0,0 @@ | |||||||
| ''' |  | ||||||
|     author = esakaiev@redhat.com |  | ||||||
| ''' |  | ||||||
| import logging |  | ||||||
| import sys |  | ||||||
| import subprocess |  | ||||||
| import os |  | ||||||
| import shutil |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| def decorated_message(message): |  | ||||||
|     """ |  | ||||||
|         This decorator is used for providing logging header for different sections in the scripts |  | ||||||
|         :param message: (`STRING`) |  | ||||||
|         :return: decorated_function |  | ||||||
|     """ |  | ||||||
| 
 |  | ||||||
|     def decorated_function(func): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :param func: |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         def wrapper(self): |  | ||||||
|             """ |  | ||||||
| 
 |  | ||||||
|             :param self: |  | ||||||
|             :return: |  | ||||||
|             """ |  | ||||||
|             print " " |  | ||||||
|             print ("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") |  | ||||||
|             print (":: {0}".format(message)) |  | ||||||
|             print ("::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::") |  | ||||||
| 
 |  | ||||||
|             func(self) |  | ||||||
| 
 |  | ||||||
|         return wrapper |  | ||||||
| 
 |  | ||||||
|     return decorated_function |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class BaseZipTests(object): |  | ||||||
|     """ |  | ||||||
|         This is a Base class for zip tests |  | ||||||
|     """ |  | ||||||
| 
 |  | ||||||
|     def __init__(self): |  | ||||||
|         self._set_logger() |  | ||||||
|         self._purpose = "" |  | ||||||
|         self.print_test_purpose() |  | ||||||
| 
 |  | ||||||
|     def _set_logger(self): |  | ||||||
|         """ |  | ||||||
|         This method is used for instantiating of logger |  | ||||||
|         :return: |  | ||||||
|         - None |  | ||||||
|         """ |  | ||||||
|         self.logger = logging.getLogger() |  | ||||||
|         self.logger.setLevel(logging.DEBUG) |  | ||||||
| 
 |  | ||||||
|         self.handler = logging.StreamHandler(sys.stdout) |  | ||||||
|         self.handler.setLevel(logging.DEBUG) |  | ||||||
|         formatter = logging.Formatter('[ %(asctime)s ] :: [ %(message)s ]') |  | ||||||
|         self.handler.setFormatter(formatter) |  | ||||||
|         self.logger.addHandler(self.handler) |  | ||||||
| 
 |  | ||||||
|     @decorated_message("PURPOSE") |  | ||||||
|     def print_test_purpose(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         print self._purpose |  | ||||||
| 
 |  | ||||||
|     def run_cmd(self, cmd, exp_err_code, message, cwd=None): |  | ||||||
|         """ |  | ||||||
|         This method is used for executing cmd, check output error code and |  | ||||||
|         add result in the logger |  | ||||||
|         :param cmd: ('STRING') - some command to execute |  | ||||||
|         :param exp_err_code: ('INTEGER') - expected error code |  | ||||||
|         :param message: ('STRING') - command description |  | ||||||
|         :param cwd: ('STRING') - path to directory, where need to execute cmd |  | ||||||
|         :return: |  | ||||||
|          - errcode ('INTEGER') |  | ||||||
|         """ |  | ||||||
|         try: |  | ||||||
|             errcode = subprocess.call(cmd, shell=True, cwd=cwd, stdout=sys.stderr.fileno()) |  | ||||||
|             if errcode != exp_err_code: |  | ||||||
|                 self.logger.debug("FAIL :: {0}".format(message)) |  | ||||||
|             else: |  | ||||||
|                 self.logger.debug("PASS ] :: [ {0}".format(message)) |  | ||||||
|             return errcode |  | ||||||
|         except subprocess.CalledProcessError as exp: |  | ||||||
|             self.logger.error("Could not execute command {0}, e: {1}".format(cmd, exp)) |  | ||||||
| 
 |  | ||||||
|     def check_package(self): |  | ||||||
|         """ |  | ||||||
|         This method is used for checking, if zip package is installed |  | ||||||
|         :return: None |  | ||||||
|         """ |  | ||||||
|         assert self.run_cmd("dnf list installed zip", 0, "Dnf package should be installed") == 0 |  | ||||||
| 
 |  | ||||||
|     def check_output(self, cmd, exp_output, message, cwd=None): |  | ||||||
|         """ |  | ||||||
|         This method is used for executing cmd and compare output result with expected message |  | ||||||
|         :param cmd: (`STRING`) - some command to execute |  | ||||||
|         :param exp_err_code: (`INTEGER`) - expected error code |  | ||||||
|         :param message: (`STRING`) - command description |  | ||||||
|         :param cwd: (`STRING`) - path to directory, where need to execute cmd |  | ||||||
|         :return: |  | ||||||
|         - output message (`STRING`) |  | ||||||
|         """ |  | ||||||
|         try: |  | ||||||
|             output = self.execute_cmd(cmd, cwd) |  | ||||||
|             if output != exp_output: |  | ||||||
|                 self.logger.debug("FAIL ]:: [ {}".format(message)) |  | ||||||
|             else: |  | ||||||
|                 self.logger.debug("PASS ] :: [ {}".format(message)) |  | ||||||
|             return output |  | ||||||
|         except subprocess.CalledProcessError as exp: |  | ||||||
|             self.logger.error(r'FAIL ] :: [ Could not execute command: "{0}",\ |  | ||||||
|              ex: {1}'.format(cmd, exp)) |  | ||||||
| 
 |  | ||||||
|     def execute_cmd(self, cmd, cwd=None): |  | ||||||
|         """ |  | ||||||
|         This method is used for executing cmd and return output message |  | ||||||
|         :param cmd: (`STRING`) - some command to execute |  | ||||||
|         :param cwd: (`STRING`) - path to directory, where need to execute cmd |  | ||||||
|         :return: |  | ||||||
|         - output message (`STRING`) |  | ||||||
|         """ |  | ||||||
|         try: |  | ||||||
|             output = subprocess.check_output(cmd, shell=True, cwd=cwd) |  | ||||||
|             return output |  | ||||||
|         except subprocess.CalledProcessError as exp: |  | ||||||
|             self.logger.error(r'FAIL ] :: [ Could not execute command: "{0}",\ |  | ||||||
|                                ex: {1}'.format(cmd, exp)) |  | ||||||
| 
 |  | ||||||
|     def remove_file(self, file_path, is_directory=False): |  | ||||||
|         """ |  | ||||||
|         This method is used for removing files or directories after execution of test cases |  | ||||||
|         :param file_path:(`STRING`) - path to file/folder |  | ||||||
|         :param is_directory: (`BOOLEAN`) - True for directories |  | ||||||
|         :return: None |  | ||||||
|         """ |  | ||||||
|         try: |  | ||||||
|             if is_directory: |  | ||||||
|                 shutil.rmtree(file_path) |  | ||||||
|             else: |  | ||||||
|                 os.remove(file_path) |  | ||||||
|             self.logger.debug("File {0} has been successfully removed".format(file_path)) |  | ||||||
|         except OSError, exp: |  | ||||||
|             self.logger.debug("File {0} doesn't exists, e: {1}".format(file_path, exp)) |  | ||||||
| @ -1,89 +0,0 @@ | |||||||
| # Copyright (c) 2018 Red Hat, Inc. All rights reserved. This copyrighted material |  | ||||||
| # is made available to anyone wishing to use, modify, copy, or |  | ||||||
| # redistribute it subject to the terms and conditions of the GNU General |  | ||||||
| # Public License v.2. |  | ||||||
| # |  | ||||||
| # 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. |  | ||||||
| # |  | ||||||
| # Author: Eduard Sakaiev <esakaiev@redhat.com> |  | ||||||
| 
 |  | ||||||
| import sys |  | ||||||
| import uuid |  | ||||||
| 
 |  | ||||||
| sys.path.append("..") |  | ||||||
| 
 |  | ||||||
| from tests import BaseZipTests |  | ||||||
| from tests import decorated_message |  | ||||||
| 
 |  | ||||||
| PURPOSE = '''zip mustn't segfault when packing files larger than 4 GB. |  | ||||||
| 
 |  | ||||||
| Note: this test can't run on RHEL 2.1 since the utilities used here |  | ||||||
| in the test don't work there as expected. This test can't run on |  | ||||||
| RHEL 5 either, but in this case, the reason is reworked zip which |  | ||||||
| can't work with files larger than 4 GB at all.''' |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class Test4GBsegfault(BaseZipTests): |  | ||||||
|     """ |  | ||||||
|         This class is used for providing functionality |  | ||||||
|         for Test4GBsegfault test case |  | ||||||
|     """ |  | ||||||
| 
 |  | ||||||
|     def __init__(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         """ |  | ||||||
|         self._purpose = PURPOSE |  | ||||||
|         super(Test4GBsegfault, self).__init__() |  | ||||||
| 
 |  | ||||||
|         self._tmpdir = "/tmp/{}".format(uuid.uuid4()) |  | ||||||
| 
 |  | ||||||
|     @decorated_message("SETUP") |  | ||||||
|     def prepare_setup(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.check_package() |  | ||||||
| 
 |  | ||||||
|         self.run_cmd("mkdir {}".format(self._tmpdir), 0, |  | ||||||
|                      "Creating tmp directory {}".format(self._tmpdir)) |  | ||||||
| 
 |  | ||||||
|     @decorated_message("TEST") |  | ||||||
|     def start_test(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.run_cmd("dd if=/dev/zero of=testfile bs=1M count=4097", 0, |  | ||||||
|                      "Creating of 4Gb file", self._tmpdir + "/") |  | ||||||
|         self.run_cmd("zip testfile.zip testfile", 0, |  | ||||||
|                      "Archiving file with zip", self._tmpdir + "/") |  | ||||||
| 
 |  | ||||||
|     @decorated_message("CLEANUP") |  | ||||||
|     def cleanup(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.run_cmd("rm -r {}".format(self._tmpdir), 0, |  | ||||||
|                      "Removing tmp directory") |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| if __name__ == "__main__": |  | ||||||
|     test_4gb = Test4GBsegfault() |  | ||||||
|     try: |  | ||||||
|         test_4gb.prepare_setup() |  | ||||||
|         test_4gb.start_test() |  | ||||||
|     except AssertionError, exp: |  | ||||||
|         test_4gb.logger.debug("FAIL ] :: [ Assertion occurred {0}".format(exp)) |  | ||||||
|     except Exception, exp: |  | ||||||
|         test_4gb.logger.debug("FAIL ] :: [ Exception occurred {0}".format(exp)) |  | ||||||
|     finally: |  | ||||||
|         test_4gb.cleanup() |  | ||||||
| @ -1,128 +0,0 @@ | |||||||
| # python2 test_big_file_in_archive.py |  | ||||||
| # Author: Josef Zila <jzila@redhat.com> |  | ||||||
| # Location: CoreOS/zip/Functionality/stress-tests/big-file-in-archive/runtest.sh |  | ||||||
| # Description: zip - tests handling large files (2GB,3MB,4GB) |  | ||||||
| 
 |  | ||||||
| # Copyright (c) 2008 Red Hat, Inc. All rights reserved. This copyrighted material |  | ||||||
| # is made available to anyone wishing to use, modify, copy, or |  | ||||||
| # redistribute it subject to the terms and conditions of the GNU General |  | ||||||
| # Public License v.2. |  | ||||||
| # |  | ||||||
| # 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. |  | ||||||
| 
 |  | ||||||
| # Include rhts and rhtslib environment |  | ||||||
| # rpm -q --quiet rhtslib || rpm -Uvh http://nest.test.redhat.com/mnt/qa/scratch/pmuller/rhtslib/rhtslib.rpm |  | ||||||
| 
 |  | ||||||
| import sys |  | ||||||
| import uuid |  | ||||||
| import platform |  | ||||||
| 
 |  | ||||||
| sys.path.append("..") |  | ||||||
| 
 |  | ||||||
| from tests import BaseZipTests |  | ||||||
| from tests import decorated_message |  | ||||||
| 
 |  | ||||||
| PURPOSE = ''' |  | ||||||
| Test Name: Big file in archive |  | ||||||
| Author: Josef Zila <jzila@redhat.com> |  | ||||||
| Location: CoreOS/zip/Functionality/stress-tests/big-file-in-archive/PURPOSE |  | ||||||
| 
 |  | ||||||
| Short Description: |  | ||||||
| Tests handling large files (2GB,3GB,4GB) |  | ||||||
| 
 |  | ||||||
| Long Description: |  | ||||||
| Test creates three files (2GB, 3GB and 4GB large) and attempts to archive each of them using zip. Then original files are deleted |  | ||||||
| and archives are unpacked, to check size of unpacked files. Current version of zip on all archs and distros in time of |  | ||||||
| writing(2.31-1) passes test. Note: 4GB file is too large for zip to handle, so it is not supposed to be successfully archived |  | ||||||
| or unpacked, test just checks for correct return codes. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| how to run it: |  | ||||||
| python2 test_big_file_in_archive.py |  | ||||||
| 
 |  | ||||||
| TEST UPDATED (esakaiev) |  | ||||||
| ------------------------ |  | ||||||
| After rebase to zip-3.0-1 there is no 4GB limit. Patching the test accordingly. |  | ||||||
| ''' |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class TestBigFileInArchive(BaseZipTests): |  | ||||||
|     """ |  | ||||||
|         This class is used for providing functionality |  | ||||||
|         for TestBigFileInArchive test case |  | ||||||
|     """ |  | ||||||
|     def __init__(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         """ |  | ||||||
|         self._purpose = PURPOSE |  | ||||||
|         super(TestBigFileInArchive, self).__init__() |  | ||||||
| 
 |  | ||||||
|         self._files = ['/tmp/tmp.{}'.format(uuid.uuid4()) for x in xrange(3)] |  | ||||||
|         self._files_sizes = [2048, 3056, 4096] |  | ||||||
|         self._os_distribution = platform.linux_distribution() |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Preparing Setup") |  | ||||||
|     def prepare_setup(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.check_package() |  | ||||||
|         for i, file_name in enumerate(self._files): |  | ||||||
|             size = self._files_sizes[i] |  | ||||||
|             assert self.run_cmd("dd if=/dev/zero of={0} bs=1M count={1}".format(file_name, size), 0, |  | ||||||
|                                 "Creating {0} GB file".format(size / 1000), cwd="/tmp/") == 0 |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Starting Test") |  | ||||||
|     def start_test(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         for i, file_name in enumerate(self._files): |  | ||||||
|             error_code = 0 |  | ||||||
| 
 |  | ||||||
|             self.remove_file(file_name + ".zip")  # #remove archive temp files, we just need unused temp names |  | ||||||
|             size = self._files_sizes[i] |  | ||||||
| 
 |  | ||||||
|             self.run_cmd("zip {0} {1}".format(file_name + ".zip", file_name), error_code, |  | ||||||
|                          "Archiving {} Gb file".format(size / 1000), cwd="/tmp/") |  | ||||||
| 
 |  | ||||||
|             self.remove_file(file_name)  # Removing original files |  | ||||||
| 
 |  | ||||||
|             self.run_cmd("unzip {0} -d /".format(file_name + ".zip"), error_code, |  | ||||||
|                          "Unpacking {} Gb file".format(size / 1000), cwd="/tmp/") |  | ||||||
| 
 |  | ||||||
|         # Checking new 2GB file size |  | ||||||
|         self.check_output("stat -c %s {0}".format(self._files[0]), "2147483648\n", "Checking new 2GB file size") |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Cleaning up") |  | ||||||
|     def cleanup(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         for file_name in self._files: |  | ||||||
|             self.remove_file(file_name) |  | ||||||
|             self.remove_file(file_name + ".zip") |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| if __name__ == "__main__": |  | ||||||
|     test = TestBigFileInArchive() |  | ||||||
|     try: |  | ||||||
|         test.prepare_setup() |  | ||||||
|         test.start_test() |  | ||||||
|     except AssertionError, exp: |  | ||||||
|         test.logger.debug("FAIL ] :: [ Assertion occurred {0}".format(exp)) |  | ||||||
|     except Exception, exp: |  | ||||||
|         test.logger.debug("FAIL ] :: [ Exception occurred {0}".format(exp)) |  | ||||||
|     finally: |  | ||||||
|         test.cleanup() |  | ||||||
| @ -1,140 +0,0 @@ | |||||||
| # Author: Josef Zila <jzila@redhat.com> |  | ||||||
| # Location: CoreOS/zip/Functionality/stress-tests/long-path-in-archive/runtest.sh |  | ||||||
| # Description: zip - tests handling very long paths within archive (15*256 characters long path) |  | ||||||
| 
 |  | ||||||
| # Copyright (c) 2008 Red Hat, Inc. All rights reserved. This copyrighted material |  | ||||||
| # is made available to anyone wishing to use, modify, copy, or |  | ||||||
| # redistribute it subject to the terms and conditions of the GNU General |  | ||||||
| # Public License v.2. |  | ||||||
| # |  | ||||||
| # 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. |  | ||||||
| 
 |  | ||||||
| import sys |  | ||||||
| import uuid |  | ||||||
| import os |  | ||||||
| from shutil import copyfile |  | ||||||
| 
 |  | ||||||
| sys.path.append("..") |  | ||||||
| 
 |  | ||||||
| from tests import BaseZipTests |  | ||||||
| from tests import decorated_message |  | ||||||
| 
 |  | ||||||
| PURPOSE = ''' |  | ||||||
| Test Name:  |  | ||||||
| Author: Josef Zila <jzila@redhat.com> |  | ||||||
| Location: CoreOS/zip/Functionality/stress-tests/long-path-in-archive/PURPOSE |  | ||||||
| 
 |  | ||||||
| Short Description: |  | ||||||
| Tests handling very long paths within archive (15*256 characters long path) |  | ||||||
| 
 |  | ||||||
| Long Description: |  | ||||||
| This test creates file with very long path of 15 directories, each 255 characters. This whole directory structure is then zipped and unzipped |  | ||||||
| to determine if zip program handles paths this long correctly. Current version of zip on all archs and distros in time of writing(2.31-1) passes test. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| how to run it: |  | ||||||
| choose arch and distro |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| TEST UPDATED (esakaiev) |  | ||||||
| ''' |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class TestLongPathInArchive(BaseZipTests): |  | ||||||
|     """ |  | ||||||
|         This class is used for providing functionality |  | ||||||
|         for TestLongPathInArchive test case |  | ||||||
|     """ |  | ||||||
|     def __init__(self): |  | ||||||
|         self._purpose = PURPOSE |  | ||||||
|         super(TestLongPathInArchive, self).__init__() |  | ||||||
| 
 |  | ||||||
|         self._tmpdir = "/tmp/{}".format(uuid.uuid4()) |  | ||||||
|         self._file_under_test = "/proc/version" |  | ||||||
| 
 |  | ||||||
|         self._long_name = "".join(["aaaaa" for i in xrange(51)]) |  | ||||||
|         self._long_path = "/".join([self._long_name for x in xrange(15)]) |  | ||||||
|         self._test_file_path = self._tmpdir + "/" + self._long_path + "/" + "testfile" |  | ||||||
|         self._package_ver = "" |  | ||||||
|         self._package_release = "" |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Prepare setup") |  | ||||||
|     def prepare_setup(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.check_package() |  | ||||||
| 
 |  | ||||||
|         self.run_cmd("mkdir {}".format(self._tmpdir), 0, "Creating tmp directory {}".format(self._tmpdir)) |  | ||||||
|         self._package_ver = self.execute_cmd("rpm -q zip --queryformat %{version}") |  | ||||||
|         self._package_release = self.execute_cmd("rpm -q zip --queryformat %{version}") |  | ||||||
| 
 |  | ||||||
|         self.logger.debug("Running zip.{0}.{1} package".format(self._package_ver, self._package_release)) |  | ||||||
|         # creating folders structure: |  | ||||||
|         try: |  | ||||||
| 
 |  | ||||||
|             os.makedirs(self._tmpdir + "/" + self._long_path) |  | ||||||
|             self.logger.debug("PASS ] :: [ Test directory with long path has been successfully created") |  | ||||||
|         except OSError, exp: |  | ||||||
|             self.logger.debug("FAIL ] :: [ Could not create directories by path, e: {}".format(exp)) |  | ||||||
|             raise |  | ||||||
| 
 |  | ||||||
|         copyfile(self._file_under_test, self._test_file_path) |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Starting Test cases") |  | ||||||
|     def start_test(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         self.run_cmd("zip -r test {0} -q".format(self._long_name), 0, |  | ||||||
|                      "Zipping test file", |  | ||||||
|                      cwd=self._tmpdir) |  | ||||||
| 
 |  | ||||||
|         self.remove_file(self._tmpdir + "/" + self._long_name, True) |  | ||||||
|         self.run_cmd("unzip -qq test.zip", 0, |  | ||||||
|                      "Unzipping test file", |  | ||||||
|                      cwd=self._tmpdir) |  | ||||||
| 
 |  | ||||||
|         content_init = None |  | ||||||
|         with open(self._file_under_test) as fp_init: |  | ||||||
|             content_init = fp_init.read().replace('\n', '') |  | ||||||
| 
 |  | ||||||
|         content_fut = None |  | ||||||
|         with open(self._test_file_path) as fp_fut: |  | ||||||
|             content_fut = fp_fut.read().replace('\n', '') |  | ||||||
| 
 |  | ||||||
|         if content_init == content_fut: |  | ||||||
|             self.logger.debug("PASS ] :: [ {}".format("Content of the initial file and file under test was matched")) |  | ||||||
|         else: |  | ||||||
|             self.logger.debug("FAIL ] :: [ {}".format("Content of the initial file and file under test wasn't matched")) |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Cleaning up") |  | ||||||
|     def cleanup(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.remove_file(self._tmpdir, True) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| if __name__ == "__main__": |  | ||||||
|     test = TestLongPathInArchive() |  | ||||||
|     try: |  | ||||||
|         test.prepare_setup() |  | ||||||
|         test.start_test() |  | ||||||
|     except AssertionError, exp: |  | ||||||
|         test.logger.debug("FAIL ] :: [ Assertion occurred {0}".format(exp)) |  | ||||||
|     except Exception, exp: |  | ||||||
|         test.logger.debug("FAIL ] :: [ Exception occurred {0}".format(exp)) |  | ||||||
|     finally: |  | ||||||
|         test.cleanup() |  | ||||||
| @ -1,140 +0,0 @@ | |||||||
| # Author: Josef Zila <jzila@redhat.com> |  | ||||||
| # Location: CoreOS/zip/Functionality/stress-tests/many-files-in-archive/runtest.sh |  | ||||||
| # Description: zip - Tests behaviour with many files in archive (1048578 files) |  | ||||||
| 
 |  | ||||||
| # Copyright (c) 2008 Red Hat, Inc. All rights reserved. This copyrighted material |  | ||||||
| # is made available to anyone wishing to use, modify, copy, or |  | ||||||
| # redistribute it subject to the terms and conditions of the GNU General |  | ||||||
| # Public License v.2. |  | ||||||
| # |  | ||||||
| # 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. |  | ||||||
| 
 |  | ||||||
| import sys |  | ||||||
| import uuid |  | ||||||
| 
 |  | ||||||
| sys.path.append("..") |  | ||||||
| 
 |  | ||||||
| from tests import BaseZipTests |  | ||||||
| from tests import decorated_message |  | ||||||
| 
 |  | ||||||
| PURPOSE = ''' |  | ||||||
| Test Name:  |  | ||||||
| Author: Josef Zila <jzila@redhat.com> |  | ||||||
| Location: CoreOS/zip/Functionality/stress-tests/many-files-in-archive/PURPOSE |  | ||||||
| 
 |  | ||||||
| Short Description: |  | ||||||
| Tests behaviour with many files in archive (1048577 files) |  | ||||||
| 
 |  | ||||||
| Long Description: |  | ||||||
| This test creates 1048576 empty files and one non-empty file. Then zips and unzips directory containing all those files and tests content of  |  | ||||||
| non-empty file and count of unzipped files. This test is very time-consuming. Current version of zip on all archs and distros in time of writing |  | ||||||
| (2.31-1) passes test. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| how to run it: |  | ||||||
| choose arch and distro |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| TEST UPDATED (esakaiev) |  | ||||||
| ''' |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class TestManyFilesInArchive(BaseZipTests): |  | ||||||
|     """ |  | ||||||
|         This class is used for providing functionality |  | ||||||
|         for TestManyFilesInArchive test case |  | ||||||
|     """ |  | ||||||
| 
 |  | ||||||
|     def __init__(self): |  | ||||||
|         self._purpose = PURPOSE |  | ||||||
|         super(TestManyFilesInArchive, self).__init__() |  | ||||||
| 
 |  | ||||||
|         self._tmpdir = "/tmp/{}".format(uuid.uuid4()) |  | ||||||
|         self._files_number = 1048576 |  | ||||||
|         self._package_ver = "" |  | ||||||
|         self._package_release = "" |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Prepare setup") |  | ||||||
|     def prepare_setup(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.check_package() |  | ||||||
| 
 |  | ||||||
|         self.run_cmd("mkdir {}".format(self._tmpdir), 0, |  | ||||||
|                      "Creating tmp directory {}".format(self._tmpdir)) |  | ||||||
|         self._package_ver = self.execute_cmd("rpm -q zip --queryformat %{version}") |  | ||||||
|         self._package_release = self.execute_cmd("rpm -q zip --queryformat %{version}") |  | ||||||
| 
 |  | ||||||
|         self.logger.debug("Running zip.{0}.{1} package".format(self._package_ver, self._package_release)) |  | ||||||
|         self.logger.debug("Creating {0} files".format(self._files_number)) |  | ||||||
| 
 |  | ||||||
|         [open("{0}/{1}".format(self._tmpdir, i), "w").close() for i in xrange(self._files_number)] |  | ||||||
|         self.logger.debug("Creating test file") |  | ||||||
|         with open("{0}/test.txt".format(self._tmpdir), "w") as fp: |  | ||||||
|             fp.write("12345") |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Starting Test cases") |  | ||||||
|     def start_test(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         self.run_cmd("zip -r test {0} -q".format(self._tmpdir.split('/')[-1]), 0, |  | ||||||
|                      "Zipping test files", |  | ||||||
|                      cwd='/tmp') |  | ||||||
| 
 |  | ||||||
|         self.remove_file(self._tmpdir, True) |  | ||||||
|         self.run_cmd("unzip -qq test.zip", 0, |  | ||||||
|                      "Unzipping test files", |  | ||||||
|                      cwd='/tmp') |  | ||||||
| 
 |  | ||||||
|         test_file_content = None |  | ||||||
|         with open("{0}/test.txt".format(self._tmpdir)) as fp: |  | ||||||
|             test_file_content = fp.read().replace('/n', '') |  | ||||||
| 
 |  | ||||||
|         if test_file_content == "12345": |  | ||||||
|             self.logger.debug("PASS ] :: [ {}".format("Unpacked content matches original")) |  | ||||||
|         else: |  | ||||||
|             self.logger.debug("FAIL ] :: [ {}".format("Unpacked content does not match original!")) |  | ||||||
| 
 |  | ||||||
|         files_count = self.execute_cmd("ls {0} | wc -l".format(self._tmpdir)).replace("\n", "") |  | ||||||
| 
 |  | ||||||
|         if files_count == str(self._files_number + 1): |  | ||||||
|             self.logger.debug( |  | ||||||
|                 "PASS ] :: [ {}".format("All {0} files present after unpacking".format(self._files_number + 1))) |  | ||||||
|         else: |  | ||||||
|             self.logger.debug(r"FAIL ] :: [ File count changed after unpacking! \ |  | ||||||
|                                            Before zipping there was {0} files. \ |  | ||||||
|                                            After unzip there is {1} files.".format(self._files_number + 1, files_count)) |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Cleaning up") |  | ||||||
|     def cleanup(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.remove_file(self._tmpdir, True) |  | ||||||
|         self.remove_file("/tmp/test.zip") |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| if __name__ == "__main__": |  | ||||||
|     test = TestManyFilesInArchive() |  | ||||||
|     try: |  | ||||||
|         test.prepare_setup() |  | ||||||
|         test.start_test() |  | ||||||
|     except AssertionError, exp: |  | ||||||
|         test.logger.debug("FAIL ] :: [ Assertion occurred {0}".format(exp)) |  | ||||||
|     except Exception, exp: |  | ||||||
|         test.logger.debug("FAIL ] :: [ Exception occurred {0}".format(exp)) |  | ||||||
|     finally: |  | ||||||
|         test.cleanup() |  | ||||||
| @ -1,106 +0,0 @@ | |||||||
| # Copyright (c) 2006 Red Hat, Inc. All rights reserved. This copyrighted material |  | ||||||
| # is made available to anyone wishing to use, modify, copy, or |  | ||||||
| # redistribute it subject to the terms and conditions of the GNU General |  | ||||||
| # Public License v.2. |  | ||||||
| # |  | ||||||
| # 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. |  | ||||||
| # |  | ||||||
| # Author: Radek Biba <rbiba@redhat.com> |  | ||||||
| 
 |  | ||||||
| import sys |  | ||||||
| import uuid |  | ||||||
| 
 |  | ||||||
| UMASK = "Running umask" |  | ||||||
| 
 |  | ||||||
| sys.path.append("..") |  | ||||||
| 
 |  | ||||||
| from tests import BaseZipTests |  | ||||||
| from tests import decorated_message |  | ||||||
| 
 |  | ||||||
| PURPOSE = ''' |  | ||||||
| zip is supposed to honor umask settings when creating archives. |  | ||||||
| This test case just checks if it really does |  | ||||||
| 
 |  | ||||||
| TEST UPDATED (esakaiev) |  | ||||||
| ''' |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class TestUmask(BaseZipTests): |  | ||||||
|     """ |  | ||||||
|         This class is used for providing functionality |  | ||||||
|         for TestUmask test case |  | ||||||
|     """ |  | ||||||
|     def __init__(self): |  | ||||||
|         self._purpose = PURPOSE |  | ||||||
|         super(TestUmask, self).__init__() |  | ||||||
| 
 |  | ||||||
|         self._tmpdir = "/tmp/{}".format(uuid.uuid4()) |  | ||||||
|         self._mask_list = ["0", "2", "20", "22", "200", "202", "220", "222", "6", "60"] |  | ||||||
|         self._package_ver = "" |  | ||||||
|         self._package_release = "" |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Prepare setup") |  | ||||||
|     def prepare_setup(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.check_package() |  | ||||||
| 
 |  | ||||||
|         self.run_cmd("mkdir {}".format(self._tmpdir), 0, "Creating tmp directory {}".format(self._tmpdir)) |  | ||||||
|         self._package_ver = self.execute_cmd("rpm -q zip --queryformat %{version}") |  | ||||||
|         self._package_release = self.execute_cmd("rpm -q zip --queryformat %{version}") |  | ||||||
| 
 |  | ||||||
|         self.logger.debug("Running zip.{0}.{1} package".format(self._package_ver, self._package_release)) |  | ||||||
| 
 |  | ||||||
|     # Trying to verify that zip honors umask. Trying with various combinations |  | ||||||
|     # of 'w's and 'r's for User, Group, and Others. |  | ||||||
|     @decorated_message("Starting Test cases") |  | ||||||
|     def start_test(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         for mask in self._mask_list: |  | ||||||
|             self.logger.debug("Running umask and zipping file {0}".format(mask)) |  | ||||||
|             self.execute_cmd("umask {0}; touch {0}; zip -q {0}.zip {0}".format(mask), cwd=self._tmpdir) |  | ||||||
| 
 |  | ||||||
|             stat_test_zip = self.execute_cmd("stat -c %a {0}.zip".format(mask), cwd=self._tmpdir).replace("\n", "") |  | ||||||
|             stat_test = self.execute_cmd("stat -c %a {0}".format(mask), cwd=self._tmpdir).replace("\n", "") |  | ||||||
| 
 |  | ||||||
|             print stat_test_zip, stat_test |  | ||||||
|             if stat_test_zip == stat_test: |  | ||||||
|                 self.logger.debug( |  | ||||||
|                     "PASS ] :: [ permissions for {0}.zip match to {0}, {1} == {2}".format(mask, stat_test_zip, |  | ||||||
|                                                                                           stat_test)) |  | ||||||
|             else: |  | ||||||
|                 self.logger.debug( |  | ||||||
|                     "FAIL ] :: [ permissions for {0}.zip doesn't match to {0}, {1} != {2}".format(mask, stat_test_zip, |  | ||||||
|                                                                                                   stat_test)) |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Cleaning up") |  | ||||||
|     def cleanup(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.remove_file(self._tmpdir, True) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| if __name__ == "__main__": |  | ||||||
|     test = TestUmask() |  | ||||||
|     try: |  | ||||||
|         test.prepare_setup() |  | ||||||
|         test.start_test() |  | ||||||
|     except AssertionError, exp: |  | ||||||
|         test.logger.debug("FAIL ] :: [ Assertion occurred {0}".format(exp)) |  | ||||||
|     except Exception, exp: |  | ||||||
|         test.logger.debug("FAIL ] :: [ Exception occurred {0}".format(exp)) |  | ||||||
|     finally: |  | ||||||
|         test.cleanup() |  | ||||||
| @ -1,105 +0,0 @@ | |||||||
| # Author: Josef Zila <jzila@redhat.com> |  | ||||||
| 
 |  | ||||||
| # Description:  Zip did not honor umask setting when creating archives. |  | ||||||
| 
 |  | ||||||
| # Copyright (c) 2008 Red Hat, Inc. All rights reserved. This copyrighted material |  | ||||||
| # is made available to anyone wishing to use, modify, copy, or |  | ||||||
| # redistribute it subject to the terms and conditions of the GNU General |  | ||||||
| # Public License v.2. |  | ||||||
| # |  | ||||||
| # 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. |  | ||||||
| 
 |  | ||||||
| import sys |  | ||||||
| import uuid |  | ||||||
| 
 |  | ||||||
| UMASK = "Running umask" |  | ||||||
| 
 |  | ||||||
| sys.path.append("..") |  | ||||||
| 
 |  | ||||||
| from tests import BaseZipTests |  | ||||||
| from tests import decorated_message |  | ||||||
| 
 |  | ||||||
| PURPOSE = ''' |  | ||||||
| Test Name: umask-when-creating |  | ||||||
| Author: Josef Zila <jzila@redhat.com> |  | ||||||
| 
 |  | ||||||
| Short Description: |  | ||||||
| zip does not honor umaks setting when creating archive |  | ||||||
| 
 |  | ||||||
| Long Description: |  | ||||||
| 
 |  | ||||||
| zip appears to have a built-in umask of 0022 regardless of the global umask. |  | ||||||
| With umask set to 0000, zip-2.3-27 creates zip files with permissions of |  | ||||||
| 0644 instead of 0666.  Previous versions created files with correct permissions. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| TEST UPDATED (esakaiev) |  | ||||||
| ''' |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class TestUmaskWhenCreating(BaseZipTests): |  | ||||||
|     """ |  | ||||||
|         This class is used for providing functionality |  | ||||||
|         for TestUmaskWhenCreating test case |  | ||||||
|     """ |  | ||||||
|     def __init__(self): |  | ||||||
|         self._purpose = PURPOSE |  | ||||||
|         super(TestUmaskWhenCreating, self).__init__() |  | ||||||
| 
 |  | ||||||
|         self._tmpdir = "/tmp/{}".format(uuid.uuid4()) |  | ||||||
|         self._mask_list = ["777", "000", "027"] |  | ||||||
|         self._expected_results = ["----------", "-rw-rw-rw-", "-rw-r-----"] |  | ||||||
|         self._package_ver = "" |  | ||||||
|         self._package_release = "" |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Prepare setup") |  | ||||||
|     def prepare_setup(self): |  | ||||||
|         self.check_package() |  | ||||||
| 
 |  | ||||||
|         self.run_cmd("mkdir {}".format(self._tmpdir), 0, "Creating tmp directory {}".format(self._tmpdir)) |  | ||||||
|         self._package_ver = self.execute_cmd("rpm -q zip --queryformat %{version}") |  | ||||||
|         self._package_release = self.execute_cmd("rpm -q zip --queryformat %{version}") |  | ||||||
| 
 |  | ||||||
|         self.logger.debug("Running zip.{0}.{1} package".format(self._package_ver, self._package_release)) |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Starting Test cases") |  | ||||||
|     def start_test(self): |  | ||||||
|         for i, mask in enumerate(self._mask_list): |  | ||||||
|             self.logger.debug("Running umask and zipping file {0}".format(mask)) |  | ||||||
|             self.execute_cmd("umask -S {0} >> /dev/null; zip test /etc/services >> /dev/null".format(mask), |  | ||||||
|                              cwd=self._tmpdir) |  | ||||||
| 
 |  | ||||||
|             result = self.execute_cmd("ls -l test.zip | cut -b 1-10", cwd=self._tmpdir).replace("\n", "") |  | ||||||
| 
 |  | ||||||
|             if result == self._expected_results[i]: |  | ||||||
|                 self.logger.debug( |  | ||||||
|                     "PASS ] :: [ file permissions match to {0}".format(self._expected_results[i])) |  | ||||||
|             else: |  | ||||||
|                 self.logger.debug( |  | ||||||
|                     "FAIL ] :: [ file permissions don't match to {0}".format(self._expected_results[i])) |  | ||||||
| 
 |  | ||||||
|             self.remove_file(self._tmpdir + "/" + "test.zip") |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Cleaning up") |  | ||||||
|     def cleanup(self): |  | ||||||
|         self.remove_file(self._tmpdir, True) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| if __name__ == "__main__": |  | ||||||
|     test = TestUmaskWhenCreating() |  | ||||||
|     try: |  | ||||||
|         test.prepare_setup() |  | ||||||
|         test.start_test() |  | ||||||
|     except AssertionError, exp: |  | ||||||
|         test.logger.debug("FAIL ] :: [ Assertion occurred {0}".format(exp)) |  | ||||||
|     except Exception, exp: |  | ||||||
|         test.logger.debug("FAIL ] :: [ Exception occurred {0}".format(exp)) |  | ||||||
|     finally: |  | ||||||
|         test.cleanup() |  | ||||||
| @ -1,105 +0,0 @@ | |||||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |  | ||||||
| # |  | ||||||
| #   Description: zipnote fails to update the archive |  | ||||||
| #   Author: Karel Volny <kvolny@redhat.com> |  | ||||||
| # |  | ||||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |  | ||||||
| # |  | ||||||
| #   Copyright (c) 2015 Red Hat, Inc. |  | ||||||
| # |  | ||||||
| #   This copyrighted material is made available to anyone wishing |  | ||||||
| #   to use, modify, copy, or redistribute it subject to the terms |  | ||||||
| #   and conditions of the GNU General Public License version 2. |  | ||||||
| # |  | ||||||
| #   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. |  | ||||||
| # |  | ||||||
| # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |  | ||||||
| 
 |  | ||||||
| import sys |  | ||||||
| import uuid |  | ||||||
| 
 |  | ||||||
| sys.path.append("..") |  | ||||||
| 
 |  | ||||||
| from tests import BaseZipTests |  | ||||||
| from tests import decorated_message |  | ||||||
| 
 |  | ||||||
| PURPOSE = ''' |  | ||||||
| PURPOSE of zipnote-fails-to-update-the-archive |  | ||||||
| Description: zipnote fails to update the archive |  | ||||||
| Author: Karel Volny <kvolny@redhat.com> |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| TEST UPDATED (esakaiev) |  | ||||||
| ''' |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| class TestZipnoteFailsToUpdateTheArchive(BaseZipTests): |  | ||||||
|     """ |  | ||||||
|         This class is used for providing functionality |  | ||||||
|         for TestZipnoteFailsToUpdateTheArchive test case |  | ||||||
|     """ |  | ||||||
|     def __init__(self): |  | ||||||
|         self._purpose = PURPOSE |  | ||||||
|         super(TestZipnoteFailsToUpdateTheArchive, self).__init__() |  | ||||||
| 
 |  | ||||||
|         self._tmpdir = '/tmp/tmp.{}'.format(uuid.uuid4()) |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Preparing setup") |  | ||||||
|     def prepare_setup(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.check_package() |  | ||||||
|         self.run_cmd("mkdir {}".format(self._tmpdir), 0, "Creating tmp directory {}".format(self._tmpdir)) |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Starting Test") |  | ||||||
|     def start_test(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.run_cmd("touch file", 0, "Creating the Demo file", cwd=self._tmpdir) |  | ||||||
|         self.run_cmd("zip archive.zip file", 0, "Creating the archive including the file", cwd=self._tmpdir) |  | ||||||
|         self.run_cmd("zipnote archive.zip > info.txt", 0, "Reading the archive comments", cwd=self._tmpdir) |  | ||||||
|         ## bad - e.g. zip-3.0-1.el6.i686: |  | ||||||
|         # zipnote error: Interrupted (aborting) |  | ||||||
|         # Segmentation fault |  | ||||||
|         ## good: no output |  | ||||||
|         self.run_cmd("zipnote -w archive.zip < info.txt > output_file.txt 2>&1", 0, "Writing comments to the archive", |  | ||||||
|                      cwd=self._tmpdir) |  | ||||||
| 
 |  | ||||||
|         if 'error' in open(self._tmpdir + '/output_file.txt').read(): |  | ||||||
|             self.logger.debug("FAIL ] :: [ File shouldn't contain an error pattern") |  | ||||||
|         else: |  | ||||||
|             self.logger.debug("PASS ] :: [ File doesn't contain an error pattern") |  | ||||||
| 
 |  | ||||||
|     @decorated_message("Cleaning up") |  | ||||||
|     def cleanup(self): |  | ||||||
|         """ |  | ||||||
| 
 |  | ||||||
|         :return: |  | ||||||
|         """ |  | ||||||
|         self.run_cmd("rm -r {}".format(self._tmpdir), 0, |  | ||||||
|                      "Removing tmp directory") |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| if __name__ == "__main__": |  | ||||||
|     test = TestZipnoteFailsToUpdateTheArchive() |  | ||||||
|     try: |  | ||||||
|         test.prepare_setup() |  | ||||||
|         test.start_test() |  | ||||||
|     except AssertionError, exp: |  | ||||||
|         test.logger.debug("FAIL ] :: [ Assertion occurred {0}".format(exp)) |  | ||||||
|     except Exception, exp: |  | ||||||
|         test.logger.debug("FAIL ] :: [ Exception occurred {0}".format(exp)) |  | ||||||
|     finally: |  | ||||||
|         test.cleanup() |  | ||||||
							
								
								
									
										24
									
								
								zip-3.0-covscan1.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								zip-3.0-covscan1.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | |||||||
|  | From b0b6660d474738a23e6ef84afadd4f87793e3ad0 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Kamil Dudka <kdudka@redhat.com> | ||||||
|  | Date: Tue, 13 Nov 2018 12:57:13 +0100 | ||||||
|  | Subject: [PATCH] XXX | ||||||
|  | 
 | ||||||
|  | ---
 | ||||||
|  |  zip.h | 2 +- | ||||||
|  |  1 file changed, 1 insertion(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/zip.h b/zip.h
 | ||||||
|  | index ba03160..d62de9a 100644
 | ||||||
|  | --- a/zip.h
 | ||||||
|  | +++ b/zip.h
 | ||||||
|  | @@ -609,7 +609,7 @@ extern int bflag;
 | ||||||
|  |  void zipmessage_nl OF((ZCONST char *, int)); | ||||||
|  |  void zipmessage OF((ZCONST char *, ZCONST char *)); | ||||||
|  |  void zipwarn OF((ZCONST char *, ZCONST char *)); | ||||||
|  | -void ziperr OF((int, ZCONST char *));
 | ||||||
|  | +void ziperr OF((int, ZCONST char *)) __attribute__ ((noreturn));
 | ||||||
|  |  #ifdef UTIL | ||||||
|  |  #  define error(msg)    ziperr(ZE_LOGIC, msg) | ||||||
|  |  #else | ||||||
|  | -- 
 | ||||||
|  | 2.17.2 | ||||||
							
								
								
									
										76
									
								
								zip.spec
									
									
									
									
									
								
							
							
						
						
									
										76
									
								
								zip.spec
									
									
									
									
									
								
							| @ -1,8 +1,9 @@ | |||||||
| Summary: A file compression and packaging utility compatible with PKZIP | Summary: A file compression and packaging utility compatible with PKZIP | ||||||
| Name: zip | Name: zip | ||||||
| Version: 3.0 | Version: 3.0 | ||||||
| Release: 35%{?dist} | Release: 23%{?dist} | ||||||
| License: BSD | License: BSD | ||||||
|  | Group: Applications/Archiving | ||||||
| Source: http://downloads.sourceforge.net/infozip/zip30.tar.gz | Source: http://downloads.sourceforge.net/infozip/zip30.tar.gz | ||||||
| URL: http://www.info-zip.org/Zip.html | URL: http://www.info-zip.org/Zip.html | ||||||
| 
 | 
 | ||||||
| @ -17,10 +18,12 @@ Patch4: man.patch | |||||||
| Patch5: zip-3.0-format-security.patch | Patch5: zip-3.0-format-security.patch | ||||||
| Patch6: zipnote.patch | Patch6: zipnote.patch | ||||||
| Patch7: zip-3.0-configure.patch | Patch7: zip-3.0-configure.patch | ||||||
| BuildRequires: make | Patch8: zip-3.0-covscan1.patch | ||||||
| BuildRequires: bzip2-devel, gcc | BuildRequires: bzip2-devel | ||||||
| Requires: unzip | Requires: unzip | ||||||
| 
 | 
 | ||||||
|  | %global _hardened_build 1 | ||||||
|  | 
 | ||||||
| %description | %description | ||||||
| The zip program is a compression and file packaging utility.  Zip is | The zip program is a compression and file packaging utility.  Zip is | ||||||
| analogous to a combination of the UNIX tar and compress commands and | analogous to a combination of the UNIX tar and compress commands and | ||||||
| @ -38,15 +41,11 @@ program. | |||||||
| %patch4 -p1 -b .man | %patch4 -p1 -b .man | ||||||
| %patch5 -p1 -b .format-security | %patch5 -p1 -b .format-security | ||||||
| %patch6 -p1 -b .zipnote | %patch6 -p1 -b .zipnote | ||||||
| %patch7 -p1  | %patch7 -p1 -b .zipconfigure | ||||||
|  | %patch8 -p1 -b .covscan1 | ||||||
| 
 | 
 | ||||||
| %build | %build | ||||||
| #Remove assembly file to force the c implementation of the crc functions | make -f unix/Makefile generic_gcc refix=%{_prefix} LFLAGS2="$RPM_LD_FLAGS" CFLAGS_NOOPT="-I. -DUNIX $RPM_OPT_FLAGS" %{?_smp_mflags} | ||||||
| #Related to 3.0-33 and 3.0-34 |  | ||||||
| rm crc_i386.S |  | ||||||
| rm match.S |  | ||||||
| 
 |  | ||||||
| make -f unix/Makefile prefix=%{_prefix} CFLAGS_NOOPT="-I. -DUNIX -DNO_ASM $RPM_OPT_FLAGS" LFLAGS2="%{?__global_ldflags}"  generic_gcc  %{?_smp_mflags} |  | ||||||
| 
 | 
 | ||||||
| %install | %install | ||||||
| mkdir -p $RPM_BUILD_ROOT%{_bindir} | mkdir -p $RPM_BUILD_ROOT%{_bindir} | ||||||
| @ -69,55 +68,16 @@ make -f unix/Makefile prefix=$RPM_BUILD_ROOT%{_prefix} \ | |||||||
| %{_mandir}/man1/zipsplit.1* | %{_mandir}/man1/zipsplit.1* | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
| * Tue Feb 14 2023 Jakub Martisko <jamartis@redhat.com> - 3.0-35 | * Tue Nov 13 2018 Jakub Martisko <jamartis@redhat.com> - 3.0-23 | ||||||
| - Fix the annocheck issus from 3-0-33 without reintroducing the regression from 3.0-34 | - Set the ziperr function as noreturn | ||||||
| Related: rhbz#2162688 | - Fix email in the previous chnagelog entry | ||||||
|  | - Related: #1602741 | ||||||
| 
 | 
 | ||||||
| * Tue Jan 31 2023 Jakub Martisko <jamartis@redhat.com> - 3.0-34 | * Fri Oct 19 2018 Jakub Martisko <jamartis@redhat.com> - 3.0-22 | ||||||
| - Fix the regression introduced in 3.0-33 that caused some of the zip build flags to be dropped | - Add missing linker flags | ||||||
| Resolves: rhbz#2162688 | - Port the configure patch from unzip that allows linker flags configuration | ||||||
| 
 |   from the spec file | ||||||
| * Tue Feb 15 2022 Jakub Martisko <jamartis@redhat.com> - 3.0-33 | - Related: #1624188 | ||||||
| - Disable the asm implementation of some functions and use the C instead |  | ||||||
| - This should fix some of the annocheck issues |  | ||||||
|   Related: rhbz#2044902 |  | ||||||
| 
 |  | ||||||
| * Thu Feb 03 2022 Jakub Martisko <jamartis@redhat.com> - 3.0-32 |  | ||||||
| - Enable gating tests |  | ||||||
|   Related: rhbz#2049738 |  | ||||||
| 
 |  | ||||||
| * Wed Feb 02 2022 Jakub Martisko <jamartis@redhat.com> - 3.0-31 |  | ||||||
| - Add the missing linker flags |  | ||||||
| - Add the patch that allows to configure the linker flags from the spec file |  | ||||||
|   Resolves: rhbz #2044902 |  | ||||||
| 
 |  | ||||||
| * Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 3.0-30 |  | ||||||
| - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags |  | ||||||
|   Related: rhbz#1991688 |  | ||||||
| 
 |  | ||||||
| * Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 3.0-29 |  | ||||||
| - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 |  | ||||||
| 
 |  | ||||||
| * Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 3.0-28 |  | ||||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild |  | ||||||
| 
 |  | ||||||
| * Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.0-27 |  | ||||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild |  | ||||||
| 
 |  | ||||||
| * Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.0-26 |  | ||||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild |  | ||||||
| 
 |  | ||||||
| * Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.0-25 |  | ||||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild |  | ||||||
| 
 |  | ||||||
| * Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 3.0-24 |  | ||||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild |  | ||||||
| 
 |  | ||||||
| * Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.0-23 |  | ||||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild |  | ||||||
| 
 |  | ||||||
| * Thu Mar 01 2018 Jakub Martisko <jamartis@redhat.com> - 3.0-22 |  | ||||||
| - Add gcc to buildrequires |  | ||||||
| 
 | 
 | ||||||
| * Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.0-21 | * Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.0-21 | ||||||
| - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild | - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user