diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/COMMITMENT b/COMMITMENT new file mode 100644 index 0000000..a687e0d --- /dev/null +++ b/COMMITMENT @@ -0,0 +1,46 @@ +GPL Cooperation Commitment +Version 1.0 + +Before filing or continuing to prosecute any legal proceeding or claim +(other than a Defensive Action) arising from termination of a Covered +License, we commit to extend to the person or entity ('you') accused +of violating the Covered License the following provisions regarding +cure and reinstatement, taken from GPL version 3. As used here, the +term 'this License' refers to the specific Covered License being +enforced. + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly + and finally terminates your license, and (b) permanently, if the + copyright holder fails to notify you of the violation by some + reasonable means prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you + have received notice of violation of this License (for any work) + from that copyright holder, and you cure the violation prior to 30 + days after your receipt of the notice. + +We intend this Commitment to be irrevocable, and binding and +enforceable against us and assignees of or successors to our +copyrights. + +Definitions + +'Covered License' means the GNU General Public License, version 2 +(GPLv2), the GNU Lesser General Public License, version 2.1 +(LGPLv2.1), or the GNU Library General Public License, version 2 +(LGPLv2), all as published by the Free Software Foundation. + +'Defensive Action' means a legal proceeding or claim that We bring +against you in response to a prior proceeding or claim initiated by +you or your affiliate. + +'We' means each contributor to this repository as of the date of +inclusion of this file, including subsidiaries of a corporate +contributor. + +This work is available under a Creative Commons Attribution-ShareAlike +4.0 International license (https://creativecommons.org/licenses/by-sa/4.0/). diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/LICENSE @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/README.md b/README.md index bd55c47..395b263 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ -Public tests have been moved to: https://gitlab.com/redhat/centos-stream/tests/ +# vim + +Repository for vim CI tests \ No newline at end of file diff --git a/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim/TC#0472653.fmf b/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim/TC#0472653.fmf new file mode 100644 index 0000000..fb7a75d --- /dev/null +++ b/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim/TC#0472653.fmf @@ -0,0 +1,9 @@ +tag: + - Tier2 +tier: '2' +adjust: + - enabled: false + when: distro != rhel-6 + continue: false +extra-nitrate: TC#0472653 +id: ac00fc90-ed1a-4b0b-bbaa-b06daecd2608 diff --git a/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim/TC#0475856.fmf b/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim/TC#0475856.fmf new file mode 100644 index 0000000..47098c0 --- /dev/null +++ b/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim/TC#0475856.fmf @@ -0,0 +1,5 @@ +tag: + - Tier1 +tier: '1' +extra-nitrate: TC#0475856 +id: 3ff1cf1d-e662-4cf7-9d51-ac05f123c38d diff --git a/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim/main.fmf b/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim/main.fmf new file mode 100644 index 0000000..c79b969 --- /dev/null +++ b/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim/main.fmf @@ -0,0 +1,19 @@ +summary: Test for BZ#1083924 (Include c++11 syntax highlighting in vim) +description: | + Bug summary: Include c++11 syntax highlighting in vim + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1083924 +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +path: /Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim +framework: beakerlib +recommend: + - vim-enhanced +duration: 5m +enabled: true +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1083924 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1267826 +extra-summary: /CoreOS/vim/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim +extra-task: /CoreOS/vim/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim diff --git a/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim/runtest.sh b/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim/runtest.sh new file mode 100755 index 0000000..7f972e5 --- /dev/null +++ b/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim/runtest.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz1083924-Include-c-11-syntax-highlighting-in-vim +# Description: Test for BZ#1083924 (Include c++11 syntax highlighting in vim) +# Author: Filip Holec +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim-enhanced" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + CPPPATH=$(rpm -ql vim-common | grep syntax/cpp.vim$) + rlPhaseEnd + + rlPhaseStartTest + rlAssertGrep "override" $CPPPATH + rlAssertGrep "final" $CPPPATH + rlAssertGrep "noexcept" $CPPPATH + rlAssertGrep "constexpr" $CPPPATH + rlAssertGrep "decltype" $CPPPATH + rlAssertGrep "thread_local" $CPPPATH + rlAssertGrep "nullptr" $CPPPATH + rlAssertGrep "ATOMIC_FLAG_INIT" $CPPPATH + rlAssertGrep "ATOMIC_VAR_INIT" $CPPPATH + for NAME in BOOL CHAR CHAR16_T CHAR32_T WCHAR_T SHORT INT LONG LLONG POINTER; do + rlAssertGrep "ATOMIC_${NAME}_LOCK_FREE" $CPPPATH + done + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz1204179-missing-bin-vi-breaks-visudo-sudoedit-crontab/main.fmf b/Regression/bz1204179-missing-bin-vi-breaks-visudo-sudoedit-crontab/main.fmf new file mode 100755 index 0000000..2eaf365 --- /dev/null +++ b/Regression/bz1204179-missing-bin-vi-breaks-visudo-sudoedit-crontab/main.fmf @@ -0,0 +1,26 @@ +summary: Test for BZ#1204179 (missing /bin/vi breaks visudo, sudoedit, crontab) +description: | + Bug summary: missing /bin/vi breaks visudo, sudoedit, crontab -e, etc. + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1204179 +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-common + - vim-minimal + - sudo + - cronie +duration: 5m +enabled: true +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1204179 +adjust: + - enabled: false + when: distro < rhel-6 + continue: false +extra-nitrate: TC#0479009 +extra-summary: /CoreOS/vim/Regression/bz1204179-missing-bin-vi-breaks-visudo-sudoedit-crontab +extra-task: /CoreOS/vim/Regression/bz1204179-missing-bin-vi-breaks-visudo-sudoedit-crontab +id: b65f525d-5cc6-424a-b4ef-3f83652ca355 diff --git a/Regression/bz1204179-missing-bin-vi-breaks-visudo-sudoedit-crontab/runtest.sh b/Regression/bz1204179-missing-bin-vi-breaks-visudo-sudoedit-crontab/runtest.sh new file mode 100755 index 0000000..6f1b62e --- /dev/null +++ b/Regression/bz1204179-missing-bin-vi-breaks-visudo-sudoedit-crontab/runtest.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz1204179-missing-bin-vi-breaks-visudo-sudoedit-crontab +# Description: Test for BZ#1204179 (missing /bin/vi breaks visudo, sudoedit, crontab) +# Author: Filip Holec +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim-common" +REQUIRES="vim-minimal" +OLDTERM=$(echo $TERM) +TERM="xterm" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlAssertRpm $REQUIRES + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + export EDITOR=vi; + rlPhaseEnd + + rlPhaseStartTest + rlRun "crontab -e <<<':q' 2> output" 0 "Run the crontab" + rlRun "cat output" + rlAssertNotGrep "/bin/sh: /bin/vi: No such file or directory" output + rlAssertNotGrep "crontab: \"/bin/vi\" exited with status 127" output + rlRun "sudoedit /etc/hosts <<<':q' 2> output" 0 "Run sudoedit command" + rlAssertNotGrep "sudoedit: /bin/vi: command not found" output + rlRun "visudo <<<':q' 2> output" 0 "Run visudo command" + rlAssertNotGrep "visudo: no editor found (editor path = /bin/vi)" output + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + TERM=$OLDTERM + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz1383902-CPU-spike-on-ssh/cpu.sh b/Regression/bz1383902-CPU-spike-on-ssh/cpu.sh new file mode 100755 index 0000000..b8950d5 --- /dev/null +++ b/Regression/bz1383902-CPU-spike-on-ssh/cpu.sh @@ -0,0 +1,8 @@ +#!/bin/bash +#Measure CPU load 100 times during 10 seconds +touch cpu.log +for _ in `seq 1 100` +do + echo `ps -C vim -o psr,%cpu | sed 1d | tr -s " " | awk -F " " '{sum += $2} END {print sum}' | cut -d "." -f 1` >>cpu.log + python -c "from time import sleep; sleep(0.1)" +done & diff --git a/Regression/bz1383902-CPU-spike-on-ssh/main.fmf b/Regression/bz1383902-CPU-spike-on-ssh/main.fmf new file mode 100644 index 0000000..7f6601b --- /dev/null +++ b/Regression/bz1383902-CPU-spike-on-ssh/main.fmf @@ -0,0 +1,29 @@ +summary: Test for BZ#1383902 (CPU spikes to 100% and timeouts observed in strace) +description: | + Bug summary: CPU spikes to 100% and timeouts observed in strace when opening yaml extensions using vim + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1383902 +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +require: + - library(distribution/epel) +recommend: + - vim + - psmisc +duration: 10m +enabled: true +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1383902 +adjust: + - enabled: false + when: distro < rhel-6 + continue: false + - enabled: false + when: arch == s390x + continue: false +extra-nitrate: TC#0546986 +extra-summary: /CoreOS/vim/Regression/bz1383902-CPU-spike-on-ssh +extra-task: /CoreOS/vim/Regression/bz1383902-CPU-spike-on-ssh +id: 4f06f0d3-2ce5-47ab-b7e0-c1bed7934cf2 diff --git a/Regression/bz1383902-CPU-spike-on-ssh/runtest.sh b/Regression/bz1383902-CPU-spike-on-ssh/runtest.sh new file mode 100755 index 0000000..3a5636b --- /dev/null +++ b/Regression/bz1383902-CPU-spike-on-ssh/runtest.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz1383902-CPU-spike-on-ssh +# Description: Test for BZ#1383902 (CPU spikes to 100% and timeouts observed in strace) +# Author: Anna Khaitovich +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2017 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGES=${PACKAGES:-"vim-enhanced"} + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm --all + rlImport "distribution/epel" + epelEnableMainRepo + rlRun "yum install -y tmux" 0 "Installing tmux" + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "cp cpu.sh $TmpDir" + rlRun "pushd $TmpDir" + rlRun "ssh-keygen -f test.txt -N ''" 0 "Generating random ssh key" + rlRun "echo '- $(cat test.txt.pub)' >test.yaml" 0 "Copying hyphen + ssh key to a yaml file" + rlRun "export TERM=xterm" + rlPhaseEnd + + rlPhaseStartTest + rlRun "tmux -u -L poc_session new-session -d -x 80 -y 24" + sleep 3 + #cpu.sh script does the CPU load mapping + rlRun "bash ./cpu.sh" 0 "Running cpu.sh"$ + sleep 1 + rlRun "tmux -u -L poc_session send-keys -t 0 'vim test.yaml' ENTER" 0 "Running reproducer" + sleep 10 + #Calculate average CPU load with top 10 measurings made by cpu.sh + ProcCPU=$(cat cpu.log | sort -rn | head -n 10 | awk '{sum += $1; n++} END {if (n>0) print sum/n;}' | cut -d "." -f 1) + rlAssertGreaterOrEqual "Check if cpu load is under 90%" 90 $ProcCPU + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "killall vim" 0 "Shut down vim" + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz1490927-vim-dumps-core-when-system-reboots/main.fmf b/Regression/bz1490927-vim-dumps-core-when-system-reboots/main.fmf new file mode 100644 index 0000000..60ba955 --- /dev/null +++ b/Regression/bz1490927-vim-dumps-core-when-system-reboots/main.fmf @@ -0,0 +1,22 @@ +summary: Check if vim segfaults when receives SIGTERM and SIGHUP in a short amount + of time +description: '' +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-enhanced +duration: 15m +enabled: true +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1490927 +adjust: + - enabled: false + when: distro < rhel-7 + continue: false +extra-nitrate: TC#0574618 +extra-summary: /CoreOS/vim/Regression/bz1490927-vim-dumps-core-when-system-reboots +extra-task: /CoreOS/vim/Regression/bz1490927-vim-dumps-core-when-system-reboots +id: bd378925-bbeb-474e-915b-ea117670fcfe diff --git a/Regression/bz1490927-vim-dumps-core-when-system-reboots/reproducer.sh b/Regression/bz1490927-vim-dumps-core-when-system-reboots/reproducer.sh new file mode 100644 index 0000000..a7d5a6a --- /dev/null +++ b/Regression/bz1490927-vim-dumps-core-when-system-reboots/reproducer.sh @@ -0,0 +1,41 @@ +#!/usr/bin/bash +# Run with: systemd-run --slice test.slice ./test.sh + +SSH_PARAMS="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" +CORE_DIR="${1:-/root/}" + +if [ ! -d $CORE_DIR ]; then + echo >&2 "$CORE_DIR must exists" + exit 1 +fi + +logger "$CORE_DIR" + +# Kill all vim processes +kill -9 $(pidof vim) +# Run vim in another ssh session with forced pseudo-tty allocation +ssh -tt $SSH_PARAMS localhost "cd $CORE_DIR && logger \"TTY: \$SSH_TTY\" && ulimit -c unlimited && vim -R /var/log/messages" & +ls -l /dev/pts/ | logger +sleep 10 + +# Check if there is only one Vim running and if it has cgroup file +# under /proc/$PID +if [ `pgrep vim | wc -l` -ne 1 ] || [ ! -f /proc/$(pgrep vim)/cgroup ] +then + echo >&2 "Vim is not opened or there are multiple instances." + exit 1 +fi + +# Older OS have several lines in cgroup file, we need to grep +# the line with systemd. Newer OS contains only one line, no need +# for pattern there. +if [ `cat /proc/$(pgrep vim)/cgroup | wc -l` -eq 1 ] +then + PATTERN='' +else + PATTERN='systemd' +fi + +# Kill the slice vim is running under - update string pattern in awk +# based on OS +systemctl stop $(basename $(awk -F ":" '/'"$PATTERN"'/ { print $3 }' /proc/$(pgrep vim)/cgroup)) diff --git a/Regression/bz1490927-vim-dumps-core-when-system-reboots/runtest.sh b/Regression/bz1490927-vim-dumps-core-when-system-reboots/runtest.sh new file mode 100755 index 0000000..2efc6ec --- /dev/null +++ b/Regression/bz1490927-vim-dumps-core-when-system-reboots/runtest.sh @@ -0,0 +1,87 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz1490927-vim-dumps-core-when-system-reboots +# Description: Check if vim segfaults when receives SIGTERM and SIGHUP in a short amount of time +# Author: Frantisek Sumsal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2018 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim-enhanced" +REPRODUCER="$PWD/reproducer.sh" +SSH_PRIVKEY="/root/.ssh/id_ed25519" +SSH_PUBKEY="/root/.ssh/id_ed25519.pub" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + # Setup SSH + rlFileBackup --clean "~/.ssh/" + rlRun "rm -fv ~/.ssh/*" + rlRun "ssh-keygen -t ed25519 -f $SSH_PRIVKEY -N ''" + rlRun "cat $SSH_PUBKEY > ~/.ssh/authorized_keys" + rlPhaseEnd + +for i in {0..9}; do + rlPhaseStartTest "Try #$i" + LOG_FILE="$(mktemp)" + SLICE="segfault$RANDOM.slice" + TEST_DIR="$(mktemp -d $PWD/testdirXXX)" + + # Run the reproducer under its own slice to not kill our current one + rlRun "systemd-run -r --slice $SLICE /bin/bash $REPRODUCER $TEST_DIR 2>&1 | tee $LOG_FILE" + # Now check if the reproducer was started successfully + SERVICE="$(grep -Eo "(run-[0-9a-zA-Z]*.service)" $LOG_FILE)" + if [[ -z "$SERVICE" ]]; then + rlFail "Failed to start the reproducer via systemd-run" + else + rlRun "sleep 6" + rlRun "systemctl status $SERVICE --no-pager" + eval $(systemctl show -p ExecMainStatus $SERVICE) + if [[ $ExecMainStatus -ne 0 ]]; then + rlFail "Failed to execute the reproducer correctly" + else + # Check if the reproducer generated any coredumps + rlRun "ls -l $TEST_DIR/core*" 2 + fi + + rlRun "journalctl --no-pager _SYSTEMD_UNIT=$SERVICE" + rlRun "systemctl stop $SERVICE" + fi + + # Cleanup + rlRun "systemctl stop $SLICE" 0-255 + rlRun "rm -frv $TEST_DIR $LOG_FILE" + rlPhaseEnd +done + + rlPhaseStartCleanup + rlFileRestore + rlRun "popd" + rlRun "rm -r $TEST_SCRIPT $TmpDir" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz1576470-Suggest-correct-packages-to-get-embedded/main.fmf b/Regression/bz1576470-Suggest-correct-packages-to-get-embedded/main.fmf new file mode 100644 index 0000000..f242465 --- /dev/null +++ b/Regression/bz1576470-Suggest-correct-packages-to-get-embedded/main.fmf @@ -0,0 +1,32 @@ +summary: Test for BZ#1576470 (Suggest correct packages to get embedded) +description: | + Bug summary: Suggest correct packages to get embedded interpreters working + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1576470 + + Description: + Test checks whether vim suggests all packages needed for clean install and functionality + of som of its feature (like python2/python3/perl embedded interpreters, ...). + Packages that don't require other dependencies/packages are ignored. +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-enhanced + - vim-X11 +duration: 5m +enabled: true +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1576470 +adjust: + - enabled: false + when: distro < rhel-8 + continue: false + - enabled: false + when: distro == rhel-alt-7 + continue: false +extra-nitrate: TC#0575504 +extra-summary: /CoreOS/vim/Regression/bz1576470-Suggest-correct-packages-to-get-embedded +extra-task: /CoreOS/vim/Regression/bz1576470-Suggest-correct-packages-to-get-embedded +id: 42122852-8571-42ef-b88c-066d3ee2bf8b diff --git a/Regression/bz1576470-Suggest-correct-packages-to-get-embedded/runtest.sh b/Regression/bz1576470-Suggest-correct-packages-to-get-embedded/runtest.sh new file mode 100755 index 0000000..1c7aeef --- /dev/null +++ b/Regression/bz1576470-Suggest-correct-packages-to-get-embedded/runtest.sh @@ -0,0 +1,82 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz1576470-Suggest-correct-packages-to-get-embedded +# Description: Test for BZ#1576470 (Suggest correct packages to get embedded) +# Author: Patrik Mosko +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2018 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +VIM="vim-enhanced" +GVIM="vim-X11" + +declare -A suggestions_deps +suggestions="python2 python3 perl ruby" +# arrays of sibling suggestions - vim should suggest every package from array (not only few of them) +suggestions_deps=(["python2"]="python2 python2-libs" \ + ["python3"]="python3 python3-libs" \ + ["perl"]="perl-devel" \ + ["ruby"]="ruby ruby-libs") + +rlJournalStart + + rlPhaseStartSetup + rlAssertRpm "$VIM" + rlAssertRpm "$GVIM" + #rhel-8 only - rhel7's rpm doesn't know option --suggests + rlRun "VIM_suggestions=\`rpm -q --suggests $VIM\`" 0 "retrieve list of vim's suggested packages" + rlRun "GVIM_suggestions=\`rpm -q --suggests $GVIM\`" 0 "retrieve list of gvim's suggested packages" + VIM_suggestions=`echo $VIM_suggestions | tr '\n' ' '` + GVIM_suggestions=`echo $GVIM_suggestions | tr '\n' ' '` + rlPhaseEnd + + for edi in VIM GVIM; do + rlPhaseStartTest + xVIM_suggestions=${edi}_suggestions + + for vim_sugg in ${!xVIM_suggestions}; do + rlLogDebug "Looking for $vim_sugg sibling suggestions/dependencies." + + for test_sugg in $suggestions; do + if [[ $vim_sugg =~ $test_sugg.* ]]; then + deps_num=0 + + rlLogDebug "suggestions_deps[$test_sugg] = ${suggestions_deps[$test_sugg]}" + for dep in ${suggestions_deps[$test_sugg]}; do + [[ $VIM_suggestions =~ (^| )$dep($| ) ]] && (( deps_num++ )) + done + rlLogDebug "Found $deps_num/`echo \"${suggestions_deps[$test_sugg]}\" | wc -w` expected suggestions for package $test_sugg" + + if [[ $deps_num == `echo "${suggestions_deps[$test_sugg]}" | wc -w` ]]; then + rlPass "$vim_sugg is suggested along with other dependencies/denepdants: ${suggestions_deps[$test_sugg]}" + else + rlFail "Some packages dependent to/for $vim_sugg are not being suggested!" + fi + fi + done + done + rlPhaseEnd + done +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz1602807-vim-X11-doesn-t-provide-the-gui/main.fmf b/Regression/bz1602807-vim-X11-doesn-t-provide-the-gui/main.fmf new file mode 100644 index 0000000..0da9fe2 --- /dev/null +++ b/Regression/bz1602807-vim-X11-doesn-t-provide-the-gui/main.fmf @@ -0,0 +1,28 @@ +summary: Test for BZ#1602807 (vim-X11 doesn't provide the gui) +description: | + Bug summary: vim-X11 doesn't provide the gui + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1602807 + + Decsription: + Try to open gvim (with GUI) through xvfb-run in virtual X environment. +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-enhanced + - vim-X11 + - xorg-x11-server-Xvfb +duration: 5m +enabled: true +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1602807 +adjust: + - enabled: false + when: distro < rhel-7 + continue: false +extra-nitrate: TC#0576064 +extra-summary: /CoreOS/vim/Regression/bz1602807-vim-X11-doesn-t-provide-the-gui +extra-task: /CoreOS/vim/Regression/bz1602807-vim-X11-doesn-t-provide-the-gui +id: 9cfdb7e1-c9f1-46b8-9432-a846fb7bb500 diff --git a/Regression/bz1602807-vim-X11-doesn-t-provide-the-gui/runtest.sh b/Regression/bz1602807-vim-X11-doesn-t-provide-the-gui/runtest.sh new file mode 100755 index 0000000..e91f0cc --- /dev/null +++ b/Regression/bz1602807-vim-X11-doesn-t-provide-the-gui/runtest.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz1602807-vim-X11-doesn-t-provide-the-gui +# Description: Test for BZ#1602807 (vim-X11 doesn't provide the gui) +# Author: Patrik Mosko +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2018 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGES="vim-X11 xorg-x11-server-Xvfb" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm --all + if rpm -q --quiet vim-enhanced; then + rlPass "Vim package is installed ($(rpm -q vim-enhanced))" + elif rpm -q --quiet vim-minimal; then + rlPass "Vim package is installed ($(rpm -q vim-minimal))" + else + rlFail "Vim package is not installed!" + fi + rlPhaseEnd + + rlPhaseStartTest "Open gvim" + rlWatchdog "rlRun 'xvfb-run -w 10 timeout 3 gvim'" 60 + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz1676339-Vim-runs-out-of-memory-during-a-find-and-replace/main.fmf b/Regression/bz1676339-Vim-runs-out-of-memory-during-a-find-and-replace/main.fmf new file mode 100644 index 0000000..356ec6c --- /dev/null +++ b/Regression/bz1676339-Vim-runs-out-of-memory-during-a-find-and-replace/main.fmf @@ -0,0 +1,29 @@ +summary: Test for BZ#1676339 (Vim runs out of memory during a find and replace) +description: | + Bug summary: Vim runs out of memory during a find and replace + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1676339 +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - sudo + - vim-minimal +duration: 20m +enabled: true +tag: + - Tier1 +tier: '1' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1676339 +adjust: + - enabled: false + when: distro < rhel-7 + continue: false +extra-nitrate: TC#0599530 +extra-summary: + /CoreOS/vim/Regression/bz1676339-Vim-runs-out-of-memory-during-a-find-and-replace +extra-task: + /CoreOS/vim/Regression/bz1676339-Vim-runs-out-of-memory-during-a-find-and-replace +id: f135f478-9041-4a67-9afb-79cc28df7bcb diff --git a/Regression/bz1676339-Vim-runs-out-of-memory-during-a-find-and-replace/runtest.sh b/Regression/bz1676339-Vim-runs-out-of-memory-during-a-find-and-replace/runtest.sh new file mode 100755 index 0000000..328f65c --- /dev/null +++ b/Regression/bz1676339-Vim-runs-out-of-memory-during-a-find-and-replace/runtest.sh @@ -0,0 +1,104 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz1676339-Vim-runs-out-of-memory-during-a-find-and-replace +# Description: Test for BZ#1676339 (Vim runs out of memory during a find and replace) +# Authors: Zdenek Dohnal +# Patrik Mosko +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2019 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +# vim-minimal-7.4.160-5.el7.x86_64 +# VALGRIND: heap usage +# --------------------------------| +# lines num | HEAP usage total | 4B/line +# --------------------------------| +# 10000 | 523,032,856 | +# 20000 | 1,945,801,529 | +# 30000 | 4,268,705,371 | +# 40000 | 7,491,994,207 | +# 50000 | 11,615,328,127 | +# ... | ... | +# 300000 should be enough | +# --------------------------------| + +PACKAGE="vim-minimal" +VIM_MSG_LINES=300000 +: ${VALGRIND_DEBUG:="NO"} + +print_oom_score_all_proc() { + ( + while read -r pid comm; do + if [[ -f /proc/$pid/oom_score ]]; then + printf '%d\t%d\t\t%d\t%s\n' "$pid" "$(cat /proc/$pid/oom_score)" "$(cat /proc/$pid/oom_score_adj)" "$comm" + fi + done < <(ps -e -o pid= -o comm=) | sort -k 2nr) | column -t +} + + +rlJournalStart + # workarond because of BaseOS CI gating - yielding FAIL for this test + # another options - remove it completely from Tier1/gating bugs + if rlIsRHEL '<=7.6'; then + rlPhaseStartSetup + rlPass "This test is excluded from RHEL-7.6 and older distros" + rlPhaseEnd + else + + ########## SETUP PHASE ########## + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlRun "TMP_vimdir=\$(mktemp -d)" + rlRun "cp test.vim $TMP_vimdir" + rlRun "pushd $TMP_vimdir" + rm -f msg + rlPhaseEnd + + ##################### TEST PHASE #################### + rlPhaseStartTest + #debug + rlLog "PID | oom_score | oom_score_adj | command" + print_oom_score_all_proc + + rlRun "for x in {1..$VIM_MSG_LINES};do echo 'cau' >> msg; done" + rlRun "[ `wc -l msg|awk '{print $1}'` -eq $VIM_MSG_LINES ]" + + echo "VALGRIND_DEBUG: $VALGRIND_DEBUG" + if [[ "$VALGRIND_DEBUG" == "YES" ]]; then + yum -y install valgrind + valgrind vi msg -c 'source test.vim' + fi + rlRun "vi msg -c 'source test.vim'" 0 "Find EOL and substitute them." + rlRun "[ `wc -l msg|awk '{print $1}'` -eq 1 ]" + rlPhaseEnd + + ########## CLEANUP PHASE ########## + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -rf $TMP_vimdir" + rlPhaseEnd + + fi +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz1676339-Vim-runs-out-of-memory-during-a-find-and-replace/test.vim b/Regression/bz1676339-Vim-runs-out-of-memory-during-a-find-and-replace/test.vim new file mode 100755 index 0000000..8f27c32 --- /dev/null +++ b/Regression/bz1676339-Vim-runs-out-of-memory-during-a-find-and-replace/test.vim @@ -0,0 +1,9 @@ +:silent !echo -n "oom_score: "; cat /proc/$PPID/oom_score +:silent !echo -n "oom_score_adj: "; cat /proc/$PPID/oom_score_adj +:silent !sudo echo 1000 > /proc/$PPID/oom_score_adj +:silent !sleep 3 +:silent !echo -e "PID: $PPID" +:silent !echo -n "oom_score: "; cat /proc/$PPID/oom_score +:silent !echo -n "oom_score_adj: "; cat /proc/$PPID/oom_score_adj +:%s/\n//g +:wq! diff --git a/Regression/bz1686822-Add-Provides-bundled-libvterm/main.fmf b/Regression/bz1686822-Add-Provides-bundled-libvterm/main.fmf new file mode 100644 index 0000000..4cee04b --- /dev/null +++ b/Regression/bz1686822-Add-Provides-bundled-libvterm/main.fmf @@ -0,0 +1,23 @@ +summary: Test for BZ#1686822 (Add Provides bundled(libvterm)) +description: | + Bug summary: Add Provides: bundled(libvterm) + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1686822 +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim +duration: 5m +enabled: true +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1686822 +adjust: + - enabled: false + when: distro < rhel-6 + continue: false +extra-nitrate: TC#0611963 +extra-summary: /CoreOS/vim/Regression/bz1686822-Add-Provides-bundled-libvterm +extra-task: /CoreOS/vim/Regression/bz1686822-Add-Provides-bundled-libvterm +id: 00302e64-c558-46c9-bf2f-a80d833681d7 diff --git a/Regression/bz1686822-Add-Provides-bundled-libvterm/runtest.sh b/Regression/bz1686822-Add-Provides-bundled-libvterm/runtest.sh new file mode 100755 index 0000000..13062ae --- /dev/null +++ b/Regression/bz1686822-Add-Provides-bundled-libvterm/runtest.sh @@ -0,0 +1,47 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz1686822-Add-Provides-bundled-libvterm +# Description: Test for BZ#1686822 (Add Provides bundled(libvterm)) +# Author: Zdenek Dohnal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2020 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm vim-enhanced + rlPhaseEnd + + rlPhaseStartTest + if rlIsRHEL '<9' + then + rlLogWarning "The bundled(libvterm) provide isn't present in RHEL < 9" + else + rlRun "rpm -q --provides vim-enhanced | grep 'bundled(libvterm)'" + fi + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz1743070-manpage-of-vim-is-garbled-in-Japanese-locale/main.fmf b/Regression/bz1743070-manpage-of-vim-is-garbled-in-Japanese-locale/main.fmf new file mode 100644 index 0000000..8e68888 --- /dev/null +++ b/Regression/bz1743070-manpage-of-vim-is-garbled-in-Japanese-locale/main.fmf @@ -0,0 +1,31 @@ +summary: Test for BZ#1743070 (manpage of vim is garbled in Japanese locale) +description: | + Bug summary: manpage of vim is garbled in Japanese locale + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1743070 +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-enhanced + - glibc-langpack-ja +duration: 5m +enabled: true +tag: + - Tier1 +tier: '1' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1743070 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1745476 +adjust: + - enabled: false + when: distro < rhel-8.3 + continue: false + - enabled: false + when: distro < rhel-8 + continue: false +extra-nitrate: TC#0606300 +extra-summary: /CoreOS/vim/Regression/bz1743070-manpage-of-vim-is-garbled-in-Japanese-locale +extra-task: /CoreOS/vim/Regression/bz1743070-manpage-of-vim-is-garbled-in-Japanese-locale +id: 80355ae5-a835-4dc0-b60b-a7a745eb1f78 diff --git a/Regression/bz1743070-manpage-of-vim-is-garbled-in-Japanese-locale/runtest.sh b/Regression/bz1743070-manpage-of-vim-is-garbled-in-Japanese-locale/runtest.sh new file mode 100755 index 0000000..500a8e3 --- /dev/null +++ b/Regression/bz1743070-manpage-of-vim-is-garbled-in-Japanese-locale/runtest.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz1743070-manpage-of-vim-is-garbled-in-Japanese-locale +# Description: Test for BZ#1743070 (manpage of vim is garbled in Japanese locale) +# Author: Zdenek Dohnal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2020 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim-enhanced" + +rlJournalStart + + rlPhaseStartTest + rlAssertRpm $PACKAGE + (rlIsRHEL '>7' || rlIsCentOS '>7') && rlAssertRpm "glibc-langpack-ja" + + rlAssertExists "/usr/share/man/ja/man1/vim.1.gz" + rlRun "LC_MESSAGES=ja_JP.utf8 man -P cat vim | grep 'プログラマのテキストエディタ'" + rlPhaseEnd + +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz241308-use-augroup-for-rh-autocmds/main.fmf b/Regression/bz241308-use-augroup-for-rh-autocmds/main.fmf new file mode 100644 index 0000000..e3341a6 --- /dev/null +++ b/Regression/bz241308-use-augroup-for-rh-autocmds/main.fmf @@ -0,0 +1,38 @@ +summary: Test for bz241308 (please use augroup for /etc/vimrc autocmds) +description: | + Bug summary: please use augroup for /etc/vimrc autocmds + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=241308 + + Description: + + Configuration file /etc/vimrc should contain all rh-provided + autocmds in an augroup so that they are easily deactivated. + + This test checks for augroup presence in /etc/vimrc and makes sure + deactivating all rh-provided autocmds works with :au! redhat +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim + - vim-minimal +duration: 5m +enabled: true +tag: + - Tier3 +tier: '3' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=241308 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=578785 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1640919 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=841904 +adjust: + - enabled: false + when: distro < rhel-5 + continue: false +extra-nitrate: TC#0008788 +extra-summary: /CoreOS/vim/Regression/bz241308-use-augroup-for-rh-autocmds +extra-task: /CoreOS/vim/Regression/bz241308-use-augroup-for-rh-autocmds +id: 3e36222b-bef7-4938-afc7-341e66d42e8e diff --git a/Regression/bz241308-use-augroup-for-rh-autocmds/runtest.sh b/Regression/bz241308-use-augroup-for-rh-autocmds/runtest.sh new file mode 100755 index 0000000..2f8481a --- /dev/null +++ b/Regression/bz241308-use-augroup-for-rh-autocmds/runtest.sh @@ -0,0 +1,75 @@ +#!/bin/bash +# vim: dict=/usr/share/rhts-library/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz241308-use-augroup-for-rh-autocmds +# Description: Test for bz241308 (please use augroup for /etc/vimrc autocmds) +# Author: Petr Splichal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2009 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 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim-minimal" + +rlJournalStart + rlPhaseStartSetup Setup + rlAssertRpm "vim-minimal" + rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlFileBackup /etc/vimrc + (rlIsRHEL || rlIsCentOS) && GroupName="redhat" || GroupName="fedora" + rlLog $GroupName + rlPhaseEnd + + rlPhaseStartTest Testing + rlAssertGrep "augroup $GroupName" "/etc/vimrc" + + # Additional functionality test on RHEL6+ only + if ! rlIsRHEL 5; then + # For rhel9 the using of .spec template is disabled by default, so for test it needs to be enabled + if rlIsRHEL '>=9' || rlIsCentOS '>=9'; then + ENABLE_TEMPL_CMD="autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec" + ESCAPED_CMD=$(echo "$ENABLE_TEMPL_CMD" | sed 's@\*@\\*@') + rlRun "sed -i \"s@\\\" ${ESCAPED_CMD}@${ESCAPED_CMD}@\" /etc/vimrc" 0 "Enabling .spec template for test" + + # augroup on, spec file should be populated with skeleton + rlRun "vim package.spec -cw -cq" 0 "Editing the spec file with $GroupName augroup on" + rlAssertGrep "changelog" "package.spec" + rlRun "cat package.spec" + fi + + # augroup off, created spec file should be empty + rlRun "vim -c 'au!$GroupName' -c 'e empty.spec' -cw -cq" \ + 0 "Editing the spec file with $GroupName augroup off" + rlAssertNotGrep "changelog" "empty.spec" + rlRun "cat empty.spec" + fi + rlPhaseEnd + + rlPhaseStartCleanup Cleanup + rlFileRestore + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd \ No newline at end of file diff --git a/Regression/bz429208-maxmemtot-memory-calculation/main.fmf b/Regression/bz429208-maxmemtot-memory-calculation/main.fmf new file mode 100644 index 0000000..237c894 --- /dev/null +++ b/Regression/bz429208-maxmemtot-memory-calculation/main.fmf @@ -0,0 +1,30 @@ +summary: Test for bz429208 (VIM mem calculation wrong) +description: | + Bug summary: VIM mem calculation wrong + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=429208 + + Description: + + Vim memory calculation was wrong on 32-bit archs when total memory + available exceeded 4GB. In such cases maxmemtot variable would be + incorrectly set to a very low value which caused vim to slow down + considerably on large files. +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-enhanced + - binutils +duration: 5m +enabled: true +tag: + - Tier3 +tier: '3' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=429208 +extra-nitrate: TC#0008789 +extra-summary: /CoreOS/vim/Regression/bz429208-maxmemtot-memory-calculation +extra-task: /CoreOS/vim/Regression/bz429208-maxmemtot-memory-calculation +id: 72dc969a-a2bd-4bd0-bff1-ad9276728b60 diff --git a/Regression/bz429208-maxmemtot-memory-calculation/runtest.sh b/Regression/bz429208-maxmemtot-memory-calculation/runtest.sh new file mode 100755 index 0000000..4ec19c0 --- /dev/null +++ b/Regression/bz429208-maxmemtot-memory-calculation/runtest.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# vim: dict=/usr/share/rhts-library/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz429208-maxmemtot-memory-calculation +# Description: Test for bz429208 (VIM mem calculation wrong) +# Author: Petr Splichal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2009 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 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include rhts environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim-enhanced" + +rlJournalStart + rlPhaseStartTest + rlAssertRpm "vim-enhanced" + + # maxmemtot (from vim) + rlRun "VimMemory=\`vim -c 'set maxmemtot' -c q | strings | + grep maxmemtot | sed 's/.*=//'\`" 0 "Inspecting maxmemtot" + rlLog "maxmemtot: $VimMemory KiB (should be half of the total)" + rlRun "((DoubleVimMemory = VimMemory * 2 / 1024))" 0,1 \ + "Converting maxmemtot to MB, multiplying by two" + rlLog "Double maxmemtot: $DoubleVimMemory MiB" + + # total (from free) + rlRun "TotalMemory=\`free -m | grep Mem | awk '{ print \$2 }'\`" \ + 0 "Parsing total memory from 'free'" + rlLog "Total memory: $TotalMemory MiB" + + # should be the same + rlAssertEquals "Double maxmemtot should equal total memory" \ + $TotalMemory $DoubleVimMemory + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz429208-maxmemtot-memory-calculation/test.md b/Regression/bz429208-maxmemtot-memory-calculation/test.md new file mode 100644 index 0000000..77e384c --- /dev/null +++ b/Regression/bz429208-maxmemtot-memory-calculation/test.md @@ -0,0 +1,16 @@ +# Test + +## Step +**Test** + +Step 1. + +This test has to be run on a machine with memory > 4GiB. + +## Expect +**Test** + +Step 1. + +1. + diff --git a/Regression/bz473977-vim-incorrectly-linked-to-libtermcap/main.fmf b/Regression/bz473977-vim-incorrectly-linked-to-libtermcap/main.fmf new file mode 100644 index 0000000..1c532ac --- /dev/null +++ b/Regression/bz473977-vim-incorrectly-linked-to-libtermcap/main.fmf @@ -0,0 +1,41 @@ +summary: Test for bz473977 (vim incorrectly linked to libtermcap) +description: | + Bug summary: vim incorrectly linked to libtermcap instead of libncurses + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=473977 + + Description: + + vim is apparently linked to libtermcap instead of libcurses or + libncurses (preferable). This causes many vim to have incorrect + capabilities under many values for TERM. + Description: + vim is apparently linked to libtermcap instead of libcurses or + libncurses (preferable). This causes many vim to have incorrect + capabilities under many values for TERM. +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim + - vim-X11 + - file + - vim-enhanced + - vim-minimal + - glibc-common +duration: 5m +enabled: true +tag: + - Tier2 +tier: '2' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=473977 +adjust: + - enabled: false + when: distro < rhel-4 + continue: false +extra-nitrate: TC#0008791 +extra-summary: /CoreOS/vim/Regression/bz473977-vim-incorrectly-linked-to-libtermcap +extra-task: /CoreOS/vim/Regression/bz473977-vim-incorrectly-linked-to-libtermcap +id: 1c253fe0-b17a-4676-849d-4d05bbe61d6a diff --git a/Regression/bz473977-vim-incorrectly-linked-to-libtermcap/runtest.sh b/Regression/bz473977-vim-incorrectly-linked-to-libtermcap/runtest.sh new file mode 100755 index 0000000..e988745 --- /dev/null +++ b/Regression/bz473977-vim-incorrectly-linked-to-libtermcap/runtest.sh @@ -0,0 +1,101 @@ +#!/bin/bash +# vim: dict=/usr/share/rhts-library/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz473977-vim-incorrectly-linked-to-libtermcap +# Description: Test for bz473977 (vim incorrectly linked to libtermcap) +# Author: Petr Splichal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2009 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 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include rhts environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim-enhanced" + +rlJournalStart + rlPhaseStartSetup Setup + rlAssertRpm "vim-minimal" + rlAssertRpm "vim-enhanced" + rlAssertRpm "vim-X11" + rlRun "set -o pipefail" + if rlIsRHEL '<7' + then + PREFIX="" + else + PREFIX="/usr" + fi + rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlPhaseEnd + + rlPhaseStartTest "Testing vim-minimal" + for binary in $PREFIX/bin/{ex,rvi,rview,vi,view} + do + # in RHEL9 /bin/vi and /bin/view are not dynamic executables + # they're wrappers + # 1918575 - Use wrappers for vi/vim instead of aliases + if rlIsRHEL '>=9' || rlIsCentOS '>=9' || rlIsFedora '>=32' \ + && [[ $binary = $PREFIX'/bin/vi' || $binary = $PREFIX'/bin/view' ]] + then + rlRun "ldd $binary |& tee output" 1 "Checking if $binary is not linked as expected" + rlRun "grep \"not a dynamic executable\" output" 0 "Checking if not a dynamic executable" + rlRun "file --mime $binary | grep 'text/plain'" 0 "The file should be a wrapper." + rlRun "binary='/usr/libexec/vi'" 0 "Assign the real executable" + elif [ $binary != $PREFIX'/bin/vi' ] && [ $binary != $PREFIX'/bin/view' ] + then + rlRun "file --mime $binary | grep 'symlink'" 0 "$binary must be a symlink" + fi + + rlRun "ldd $binary | tee output" 0 "Checking $binary" + # make sure there are no libs in /usr/ in ldd output + rlAssertNotGrep "/usr/" "output" + done + + rlPhaseEnd + + rlPhaseStartTest "Testing vim-enhanced" + for binary in /usr/bin/{ex,rvim,vim,vimdiff} ; do + rlRun "ldd $binary | egrep 'termcap|ncurses' | tee output" \ + 0-1 "Checking $binary" + rlAssertNotGrep "libtermcap" "output" + # RHEL 6 got updated to 7.4 - ncurses dependency dropped + rlIsRHEL 5 &&rlAssertGrep "ncurses" "output" + done + rlPhaseEnd + + rlPhaseStartTest "Testing vim-X11" + rlIsRHEL 4 && path="/usr/X11R6/bin" || path="/usr/bin" + for binary in $path/{evim,gex,gview,gvim,gvimdiff,vimx} ; do + rlRun "ldd $binary | egrep 'termcap|ncurses' | tee output" \ + 0-1 "Checking $binary" + rlAssertNotGrep "libtermcap" "output" + # RHEL 6 got updated to 7.4 - ncurses dependency dropped + rlIsRHEL 5 && rlAssertGrep "ncurses" "output" + done + rlPhaseEnd + + rlPhaseStartCleanup Cleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz505344-netrw-plugin-delete-command-broken/main.fmf b/Regression/bz505344-netrw-plugin-delete-command-broken/main.fmf new file mode 100644 index 0000000..87a6951 --- /dev/null +++ b/Regression/bz505344-netrw-plugin-delete-command-broken/main.fmf @@ -0,0 +1,33 @@ +summary: 'Test for bz505344 (netrw plugin: delete command broken)' +description: | + Bug summary: netrw plugin: delete command broken + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=505344 + + Description: + + Since the fix for security issue CVE-2008-6235 the delete command + of netrw plugin does not successfully delete files or directories. + + Description: + + Since the fix for security issue CVE-2008-6235 the delete command + of netrw plugin does not successfully delete files or directories. +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim + - vim-enhanced +duration: 5m +enabled: true +tag: + - Tier2 +tier: '2' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=505344 +extra-nitrate: TC#0009527 +extra-summary: /CoreOS/vim/Regression/bz505344-netrw-plugin-delete-command-broken +extra-task: /CoreOS/vim/Regression/bz505344-netrw-plugin-delete-command-broken +id: 1ebf22e6-7dda-494b-8818-e2dfca4753da diff --git a/Regression/bz505344-netrw-plugin-delete-command-broken/runtest.sh b/Regression/bz505344-netrw-plugin-delete-command-broken/runtest.sh new file mode 100755 index 0000000..e6a806b --- /dev/null +++ b/Regression/bz505344-netrw-plugin-delete-command-broken/runtest.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# vim: dict=/usr/share/rhts-library/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz505344-netrw-plugin-delete-command-broken +# Description: Test for bz505344 (netrw plugin: delete command broken) +# Author: Petr Splichal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2009 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 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include rhts environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim-enhanced" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + # create test file & dir + rlRun "touch testfile" 0 "Creating test file" + rlRun "mkdir testdir" 0 "Creating test directory" + rlAssertExists "testfile" + rlAssertExists "testdir" + # create vim scripts + rlRun "echo '/testfile +Dy +:q' > scriptfile" \ + 0 "Creating file delete script" + rlRun "echo '/testdir +Dy +:q' > scriptdir" \ + 0 "Creating directory delete script" + rlPhaseEnd + + rlPhaseStartTest + rlRun "vim . -s scriptfile" 0 "Deleting file using netrw" + rlAssertNotExists "testfile" + rlRun "vim . -s scriptdir" 0 "Deleting directory using netrw" + rlAssertNotExists "testdir" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz506442-Add-Vim-to-Applications-Accessories-menu/main.fmf b/Regression/bz506442-Add-Vim-to-Applications-Accessories-menu/main.fmf new file mode 100644 index 0000000..6a3d56d --- /dev/null +++ b/Regression/bz506442-Add-Vim-to-Applications-Accessories-menu/main.fmf @@ -0,0 +1,24 @@ +summary: Test for bz506442 (Add Vim to Applications > Accessories menu) +description: '' +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim + - vim-common + - vim-enhanced + - vim-minimal + - vim-X11 +duration: 5m +enabled: true +tag: + - Tier3 +tier: '3' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=506442 +extra-nitrate: TC#0057108 +extra-summary: /CoreOS/vim/Regression/bz506442-Add-Vim-to-Applications-Accessories-menu +extra-task: /CoreOS/vim/Regression/bz506442-Add-Vim-to-Applications-Accessories-menu +id: e257c698-e0e1-4611-8744-b2bd433b165f diff --git a/Regression/bz506442-Add-Vim-to-Applications-Accessories-menu/runtest.sh b/Regression/bz506442-Add-Vim-to-Applications-Accessories-menu/runtest.sh new file mode 100755 index 0000000..143c52c --- /dev/null +++ b/Regression/bz506442-Add-Vim-to-Applications-Accessories-menu/runtest.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz506442-Add-Vim-to-Applications-Accessories-menu +# Description: Test for bz506442 (Add Vim to Applications > Accessories menu) +# Author: David Kutalek +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2010 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 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include rhts environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm vim-common + rlAssertRpm vim-enhanced + rlAssertRpm vim-minimal + rlAssertRpm vim-X11 + rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + DESKTOP_FILE=`find /usr/share/applications -name '*vim.desktop'` + rlRun "[ -r "$DESKTOP_FILE" ]" 0 "gvim desktop file readable: $DESKTOP_FILE" + rlPhaseEnd + + rlPhaseStartTest + rlRun "grep '^Categories=.*Utility;TextEditor;.*' $DESKTOP_FILE" 0 + rlRun "grep '^Categories=.*Development;.*' $DESKTOP_FILE" 1 + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error/exdoublequote b/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error/exdoublequote new file mode 100644 index 0000000..4037c88 --- /dev/null +++ b/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error/exdoublequote @@ -0,0 +1,2 @@ +" comment +q diff --git a/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error/expounddoublequote b/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error/expounddoublequote new file mode 100644 index 0000000..ff82115 --- /dev/null +++ b/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error/expounddoublequote @@ -0,0 +1,2 @@ +#" comment +q diff --git a/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error/main.fmf b/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error/main.fmf new file mode 100644 index 0000000..6b8ad01 --- /dev/null +++ b/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error/main.fmf @@ -0,0 +1,31 @@ +summary: Test for bz572157 (vim in ex mode incorrectly gives an eol error) +description: | + Bug summary: SR #1991386 vim in ex mode incorrectly gives an end-of-line error in RHEL-5 + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=572157 + + Description: + + Escalated to Bugzilla from IssueTracker + + Description: + + Escalated to Bugzilla from IssueTracker +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim + - vim-minimal +duration: 5m +enabled: true +tag: + - Tier2 +tier: '2' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=572157 +extra-nitrate: TC#0057109 +extra-summary: /CoreOS/vim/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error +extra-task: /CoreOS/vim/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error +id: ba8e8fec-4691-413e-b312-c0c9d99f5345 diff --git a/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error/runtest.sh b/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error/runtest.sh new file mode 100755 index 0000000..bc79729 --- /dev/null +++ b/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error/runtest.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz572157-vim-in-ex-mode-incorrectly-gives-an-eol-error +# Description: Test for bz572157 (vim in ex mode incorrectly gives an eol error) +# Author: David Kutalek +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2010 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 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include rhts environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm vim-minimal + rlPhaseEnd + + rlPhaseStartTest + rlRun "ex -u NONE ~/.bash_profile < ./exdoublequote" + rlRun "ex -u NONE ~/.bash_profile < ./expounddoublequote" + rlPhaseEnd + +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz591578-netrw-vim-prints-additional-chars/main.fmf b/Regression/bz591578-netrw-vim-prints-additional-chars/main.fmf new file mode 100644 index 0000000..045ff11 --- /dev/null +++ b/Regression/bz591578-netrw-vim-prints-additional-chars/main.fmf @@ -0,0 +1,26 @@ +summary: Test for BZ#591578 (netrw prints 'e' in front of filenames) +description: | + Bug summary: netrw.vim print additional 'e' in front of filenames + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=591578 + + Check whether in zh_CN.gbk locale netrw plugin correctly displays filenames. +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-enhanced +duration: 5m +enabled: true +tag: + - Tier3 +tier: '3' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=591578 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1031691 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1234547 +extra-nitrate: TC#0184612 +extra-summary: /CoreOS/vim/Regression/bz591578-netrw-vim-prints-additional-chars +extra-task: /CoreOS/vim/Regression/bz591578-netrw-vim-prints-additional-chars +id: 1fbb19d5-7566-438f-8891-1e742c83e145 diff --git a/Regression/bz591578-netrw-vim-prints-additional-chars/runtest.sh b/Regression/bz591578-netrw-vim-prints-additional-chars/runtest.sh new file mode 100755 index 0000000..4bd802f --- /dev/null +++ b/Regression/bz591578-netrw-vim-prints-additional-chars/runtest.sh @@ -0,0 +1,54 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz591578-netrw-vim-prints-additional-chars +# Description: Test for BZ#591578 (netrw prints 'e' in front of filenames) +# Author: Petr Splichal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2012 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 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh + +PACKAGE="vim-enhanced" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlPhaseEnd + + rlPhaseStartTest + cmd="vim -c 'call netrw#LocalBrowseCheck(expand(\"%:p\")) | w output | q'" + rlRun "LC_CTYPE=zh_CN.gbk $cmd ." \ + 0 "Save directory listing" + rlAssertNotGrep "^e\.\." "output" + rlAssertGrep "^\.\." "output" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz634902-rpm-spec-template-is-out-of-date/main.fmf b/Regression/bz634902-rpm-spec-template-is-out-of-date/main.fmf new file mode 100644 index 0000000..e49a0fc --- /dev/null +++ b/Regression/bz634902-rpm-spec-template-is-out-of-date/main.fmf @@ -0,0 +1,33 @@ +summary: Test for BZ#634902 (rpm spec template is out-of-date) +description: | + Bug summary: rpm spec template is out-of-date + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=634902 + + Make sure the rpm spec template uses %{buildroot} macro instead of + the obsoleted $RPM_BUILD_ROOT variable. + Make sure the rpm spec template uses %{buildroot} macro instead of + the obsoleted $RPM_BUILD_ROOT variable. + + Test Case Relevancy: + distro = rhel-4, rhel-5: False +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-common + - vim-data +duration: 5m +enabled: true +tag: + - Tier3 +tier: '3' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=634902 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1211214 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=825679 +extra-nitrate: TC#0147908 +extra-summary: /CoreOS/vim/Regression/bz634902-rpm-spec-template-is-out-of-date +extra-task: /CoreOS/vim/Regression/bz634902-rpm-spec-template-is-out-of-date +id: 83feb702-ab66-4715-ad3b-db05df92402f diff --git a/Regression/bz634902-rpm-spec-template-is-out-of-date/runtest.sh b/Regression/bz634902-rpm-spec-template-is-out-of-date/runtest.sh new file mode 100755 index 0000000..80b1f14 --- /dev/null +++ b/Regression/bz634902-rpm-spec-template-is-out-of-date/runtest.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz634902-rpm-spec-template-is-out-of-date +# Description: Test for BZ#634902 (rpm spec template is out-of-date) +# Author: Petr Splichal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2012 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 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +if rlIsFedora || rlIsRHELLike '>=10'; then + PACKAGE="vim-data" +else + PACKAGE="vim-common" +fi + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlRun "SpecTemplate=$(rpm -ql $PACKAGE | grep template.spec)" + rlPhaseEnd + + rlPhaseStartTest + rlRun "cat $SpecTemplate" 0 "Checking the spec template" + rlAssertNotGrep "\$RPM_BUILD_ROOT" $SpecTemplate + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz652610-netrw-plugin-and-parent-directory/main.fmf b/Regression/bz652610-netrw-plugin-and-parent-directory/main.fmf new file mode 100644 index 0000000..6a6dc05 --- /dev/null +++ b/Regression/bz652610-netrw-plugin-and-parent-directory/main.fmf @@ -0,0 +1,26 @@ +summary: Test for BZ#652610 ("vim .." does not show files properly) +description: | + Bug summary: "vim .." does not show files properly + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=652610 + + Check whether 'vim ..' correctly displays contents of the parent + directory. +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-enhanced +duration: 5m +enabled: true +tag: + - Tier3 +tier: '3' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=652610 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=825307 +extra-nitrate: TC#0147914 +extra-summary: /CoreOS/vim/Regression/bz652610-netrw-plugin-and-parent-directory +extra-task: /CoreOS/vim/Regression/bz652610-netrw-plugin-and-parent-directory +id: fdb13bca-b85a-44b6-9703-dc973ef121bd diff --git a/Regression/bz652610-netrw-plugin-and-parent-directory/runtest.sh b/Regression/bz652610-netrw-plugin-and-parent-directory/runtest.sh new file mode 100755 index 0000000..ac5a897 --- /dev/null +++ b/Regression/bz652610-netrw-plugin-and-parent-directory/runtest.sh @@ -0,0 +1,59 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz652610-netrw-plugin-and-parent-directory +# Description: Test for BZ#652610 ("vim .." does not show files properly) +# Author: Petr Splichal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2012 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 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim-common" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlRun "export LANG=en_US.UTF-8" 0 "Setting the locale" + rlRun "touch file{01..10}" 0 "Creating test files" + rlRun "mkdir dir" + rlRun "pushd dir" + rlPhaseEnd + + rlPhaseStartTest + for file in file{01..02}; do + rlRun "vim -c 'call netrw#LocalBrowseCheck(expand(\"%:p\")) | w out_$file | q' .." \ + 0 "Saving directory listing output" + rlAssertGrep "$file" "out_$file" + rlAssertNotGrep "Pattern not found" "out_$file" + done + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd; popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz681108-vim-crashes-while-doing-completion/crasher.exp b/Regression/bz681108-vim-crashes-while-doing-completion/crasher.exp new file mode 100644 index 0000000..df903d5 --- /dev/null +++ b/Regression/bz681108-vim-crashes-while-doing-completion/crasher.exp @@ -0,0 +1,11 @@ +#!/usr/bin/expect -f + +set timeout -1 +spawn vim -N -u NONE -n -S crasher.vim file.txt +expect "foobar" +send -- "o" +send -- "foo" +send -- "\[24~" +send -- "" +send -- ":q!\r" +expect eof diff --git a/Regression/bz681108-vim-crashes-while-doing-completion/crasher.vim b/Regression/bz681108-vim-crashes-while-doing-completion/crasher.vim new file mode 100644 index 0000000..3c8b65e --- /dev/null +++ b/Regression/bz681108-vim-crashes-while-doing-completion/crasher.vim @@ -0,0 +1,84 @@ +" Test case by Ingo Karkat: +" http://vim.1045645.n5.nabble.com/Crash-with-completefunc-mapping-followed-by-text-td1210506.html +" + +function! s:FindMatchesInCurrentWindow( matches, pattern, matchTemplate, options, isInCompletionBuffer ) + let l:isBackward = has_key(a:options, 'backward_search') + + let l:save_cursor = getpos('.') + + let l:firstMatchPos = [0,0] + while ! complete_check() + let l:matchPos = searchpos( a:pattern, 'w' . (l:isBackward ? 'b' : '') ) + if l:matchPos == [0,0] || l:matchPos == l:firstMatchPos + break + endif + if l:firstMatchPos == [0,0] + let l:firstMatchPos = l:matchPos + endif + + let l:matchEndPos = searchpos( a:pattern, 'cen' ) + if a:isInCompletionBuffer && (l:matchEndPos == l:save_cursor[1:2]) + continue + endif + + let l:matchObj = copy(a:matchTemplate) + let l:matchText = a:options.extractor(l:matchPos, l:matchEndPos, l:matchObj) + + let l:matchObj.word = l:matchText + + if ! empty(l:matchText) && index(a:matches, l:matchObj) == -1 + call add( a:matches, l:matchObj ) + endif + endwhile + + call setpos('.', l:save_cursor) +endfunction + +function! MotionComplete_ExtractText( startPos, endPos, matchObj ) + let l:save_cursor = getpos('.') + let @@ = '' + call setpos('.', [0, a:startPos[0], a:startPos[1], 0]) + execute 'silent! normal y' . s:motion + let l:text = @@ + call setpos('.', l:save_cursor) + return l:text +endfunction + +function! s:LocateStartCol() + let l:startCol = searchpos('\k\+\%(\k\@!.\)*\%#', 'bn', line('.'))[1] + if l:startCol == 0 + let l:startCol = col('.') + endif + return l:startCol +endfunction + +function! s:MotionComplete( findstart, base ) + if a:findstart + return s:LocateStartCol() - 1 " Return byte index, not column. + else + let l:options = {} + let l:options.extractor = function('MotionComplete_ExtractText') + let l:matches = [] + call s:FindMatchesInCurrentWindow( l:matches, '\V\<' . escape(a:base, '\'), {}, l:options, 1 ) + return l:matches + endif +endfunction + +let s:motion = 'w' + +inoremap MotionComplete :set completefunc=MotionComplete + +" The original mapping that caused the crash. +" In combination with an expression to select the first match in the popup menu +" (this is useful in combination with :set completeopt=menu,longest), Vim +" crashes. +"imap MotionComplete=pumvisible() ? "\Down>" : "" + +" A simplified mapping that still causes the crash. +imap MotionComplete+Some-More-Text + +" The bare mapping works fine. +if exists('nobug') + imap MotionComplete +endif diff --git a/Regression/bz681108-vim-crashes-while-doing-completion/main.fmf b/Regression/bz681108-vim-crashes-while-doing-completion/main.fmf new file mode 100644 index 0000000..5a02df6 --- /dev/null +++ b/Regression/bz681108-vim-crashes-while-doing-completion/main.fmf @@ -0,0 +1,29 @@ +summary: Test for BZ#681108 (vim crashes while doing completion) +description: | + Bug summary: vim crashes while doing completion + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=681108 + + Vim completion crash reproducer based on the test case by Ingo Karkat: + http://vim.1045645.n5.nabble.com/Crash-with-completefunc-mapping-followed-by-text-td1210506.html + + Vim completion crash reproducer based on the test case by Ingo Karkat: + http://vim.1045645.n5.nabble.com/Crash-with-completefunc-mapping-followed-by-text-td1210506.html +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-enhanced + - expect +duration: 5m +enabled: true +tag: + - Tier3 +tier: '3' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=681108 +extra-nitrate: TC#0184619 +extra-summary: /CoreOS/vim/Regression/bz681108-vim-crashes-while-doing-completion +extra-task: /CoreOS/vim/Regression/bz681108-vim-crashes-while-doing-completion +id: 53b4557a-6ca8-4601-aa26-3686b5461348 diff --git a/Regression/bz681108-vim-crashes-while-doing-completion/runtest.sh b/Regression/bz681108-vim-crashes-while-doing-completion/runtest.sh new file mode 100755 index 0000000..b93fbaa --- /dev/null +++ b/Regression/bz681108-vim-crashes-while-doing-completion/runtest.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz681108-vim-crashes-while-doing-completion +# Description: Test for BZ#681108 (vim crashes while doing completion) +# Author: Petr Splichal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2012 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 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh + +PACKAGE="vim-enhanced" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "cp crasher.* $TmpDir" 0 "Copying the crasher" + rlRun "pushd $TmpDir" + rlRun "echo -e 'foobar\nfoobar' > file.txt" 0 "Creating test file" + rlRun "ulimit -c unlimited" 0 "Enable core generation" + rlRun "export TERM=xterm" 0 "Pretend we're running under xterm" + rlPhaseEnd + + rlPhaseStartTest + rlRun "expect crasher.exp" 0 "Running the reproducer" + rlRun "ls -l core*" 2 "Checking for core" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/bz820331-Vim-syntax-file-for-sshdconfig-is-missing-newer/main.fmf b/Regression/bz820331-Vim-syntax-file-for-sshdconfig-is-missing-newer/main.fmf new file mode 100644 index 0000000..b10532c --- /dev/null +++ b/Regression/bz820331-Vim-syntax-file-for-sshdconfig-is-missing-newer/main.fmf @@ -0,0 +1,24 @@ +summary: Test for BZ#820331 (Vim syntax file for sshdconfig is missing newer) +description: | + Bug summary: Vim syntax file for sshdconfig is missing newer keyword entries + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=820331 +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-common +duration: 5m +enabled: true +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=820331 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1404257 +adjust: + - enabled: false + when: distro == rhel-4, rhel-5, rhel-8 + continue: false +extra-nitrate: TC#0466605 +extra-summary: Support for new sshd keywords +extra-task: /CoreOS/vim/Regression/bz820331-Vim-syntax-file-for-sshdconfig-is-missing-newer +id: 26ef93f2-2d87-4f9f-adf7-475d72cbbe51 diff --git a/Regression/bz820331-Vim-syntax-file-for-sshdconfig-is-missing-newer/runtest.sh b/Regression/bz820331-Vim-syntax-file-for-sshdconfig-is-missing-newer/runtest.sh new file mode 100755 index 0000000..9b13d16 --- /dev/null +++ b/Regression/bz820331-Vim-syntax-file-for-sshdconfig-is-missing-newer/runtest.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/bz820331-Vim-syntax-file-for-sshdconfig-is-missing-newer +# Description: Test for BZ#820331 (Vim syntax file for sshdconfig is missing newer) +# Author: Filip Holec +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# 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. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim-common" + +NEW_KEYWORDS="AllowAgentForwarding +AuthorizedKeysCommand +AuthorizedKeysCommandRunAs +ChrootDirectory +GSSAPIKeyExchange +GSSAPIStrictAcceptorCheck +KerberosUseKuserok +MaxSessions +RequiredAuthentications1 +RequiredAuthentications2 +" +RHEL6_BLACKLIST="" +RHEL7_BLACKLIST="" +RHEL8_BLACKLIST="RequiredAuthentications1 RequiredAuthentications2 AuthorizedKeysCommandRunAs" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + FILE=$(rpm -ql vim-common | grep sshdconfig.vim$) + rlAssertExists "$FILE" || rlDie "vim-common doesn't include syntax file for sshd_config" + shopt -s compat31 #for \\b + rlPhaseEnd + + rlPhaseStartTest + for _ver in 6 7 8; do + rlIsRHEL "$_ver" || continue + _blist="RHEL${_ver}_BLACKLIST" + for k in $NEW_KEYWORDS; do + [[ "${!_blist}" =~ \\b"$k"\\b ]] || rlAssertGrep "syn keyword .*$k" $FILE + done + done + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Regression/docs/main.fmf b/Regression/docs/main.fmf new file mode 100644 index 0000000..5e0bfd7 --- /dev/null +++ b/Regression/docs/main.fmf @@ -0,0 +1,29 @@ +summary: Test for man pages bugs +description: |+ + Bug summary: Conflicting manpages rvi.1.gz and vi.1.gz during update + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1599660 + + Purpose of this file is to collect different bugs for man pages as proposed in + https://wiki.test.redhat.com/BaseOs/BestPractices/TestsForManPages + * "name of the test where one phase is one man page bug might be like this: /CoreOS//Sanity || Regression/docs " + +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-minimal + - vim-common +duration: 5m +enabled: true +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1599660 +adjust: + - enabled: false + when: distro < rhel-6 + continue: false +extra-nitrate: TC#0575733 +extra-summary: /CoreOS/vim/Regression/docs +extra-task: /CoreOS/vim/Regression/docs +id: be3cbe71-027a-43a0-af60-2c91fee4ab5e diff --git a/Regression/docs/runtest.sh b/Regression/docs/runtest.sh new file mode 100755 index 0000000..043e5df --- /dev/null +++ b/Regression/docs/runtest.sh @@ -0,0 +1,102 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Regression/docs +# Description: Test for man pages bugs: +# BZ#1599660 (Conflicting manpages rvi.1.gz and vi.1.gz during) +# +# Author: Patrik Mosko +# +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2018 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGES="vim-common vim-minimal" + +rlJournalStart + rlPhaseStartSetup + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlAssertRpm --all + rlPhaseEnd + + ############################################################ + # BZ#1599660 + ############################################################ + rlPhaseStartTest "Test conflicting vim-{common,minimal} man pages" + VIMmin_ver=(`rpm -q vim-minimal | rev | sed -r 's;^[^.]*.[^.]*.([^-]*-[^-]*)-.*$;\1;' | rev | tr '.-' ' '`) + VIMcom_ver=(`rpm -q vim-common | rev | sed -r 's;^[^.]*.[^.]*.([^-]*-[^-]*)-.*$;\1;' | rev | tr '.-' ' '`) + VIMcom_conf_ver=(`rpm -q --conflicts vim-minimal | grep vim-common | awk '{print $3}' | tr '.-' ' '`) + VIMmin_conf_ver=(`rpm -q --conflicts vim-common | grep vim-minimal | awk '{print $3}' | tr '.-' ' '`) + + # check only man-page files, could be changed to all files + rpm -ql vim-minimal | grep /man/ > VimMinRpmFiles + rpm -ql vim-common | grep /man/ > VimComRpmFiles + rlAssertExists VimMinRpmFiles + rlAssertExists VimComRpmFiles + rlAssertNotGrep VimMinRpmFiles VimComRpmFiles -w -f + + #check version of actual vim-minimal with the one[s] that vim-common is conflicting with + higher=0 + for v in "${!VIMmin_conf_ver[@]}"; do + (( ${VIMmin_ver[$v]} >= ${VIMmin_conf_ver[$v]} )) && [[ $higher == 0 ]] || break + #at least one part of the version should be higher than the same part in the other vim's rpm's + (( ${VIMmin_ver[$v]} > ${VIMmin_conf_ver[$v]} )) && (( higher++ )) + done + if [ ${VIMmin_conf_ver[@]} -eq 0 ]; then + rlPass "vim-common doesn't conflicts with vim-minimal" + elif [ $higher -ge 0 ]; then + rlPass "Actual version of vim-minimal is not conflicting with vim-common" + else + rlFail "Actual version of vim-minimal may conflicts with vim-common" + fi + + #check version of actual vim-common with the one[s] that vim-minimal is conflicting with + higher=0 + for v in "${!VIMcom_conf_ver[@]}"; do + (( ${VIMcom_ver[$v]} >= ${VIMcom_conf_ver[$v]} )) && [[ $higher == 0 ]] || break + #at least one part of the version should be higher than the same part in the other vim's rpm's + (( ${VIMcom_ver[$v]} > ${VIMcom_conf_ver[$v]} )) && (( higher++ )) + done + if [ ${VIMcom_conf_ver[@]} -eq 0 ]; then + rlPass "vim-common doesn't conflicts with vim-minimal" + elif [ $higher -ge 0 ]; then + rlPass "Actual version of vim-common is not conflicting with vim-minimal" + else + rlFail "Actual version of vim-common may conflicts with vim-minimal" + fi + rlPhaseEnd + + # BZ#??????? + # As RECOMMENDED in Best QA Practices, each man page fix that needs test case + # should be inserted here as independent Test Phase + #rlPhaseStartTest + # rlRun "" + #rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Sanity/bz2011389-Loading-etc-vimrc-virc/main.fmf b/Sanity/bz2011389-Loading-etc-vimrc-virc/main.fmf new file mode 100644 index 0000000..e0772e0 --- /dev/null +++ b/Sanity/bz2011389-Loading-etc-vimrc-virc/main.fmf @@ -0,0 +1,28 @@ +summary: Test whether we load system wide vimrcs +description: '' +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-minimal + - vim-enhanced + - rpm + - grep +duration: 5m +enabled: true +tag: + - Tier1 +tier: '1' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2011389 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2011429 +adjust: + - enabled: false + when: distro < rhel-8 + continue: false +extra-nitrate: TC#0611953 +extra-summary: /CoreOS/vim/Sanity/bz2011389-Loading-etc-vimrc-virc +extra-task: /CoreOS/vim/Sanity/bz2011389-Loading-etc-vimrc-virc +id: a0bf3075-7fc9-4178-9f09-df54a22c190d diff --git a/Sanity/bz2011389-Loading-etc-vimrc-virc/runtest.sh b/Sanity/bz2011389-Loading-etc-vimrc-virc/runtest.sh new file mode 100755 index 0000000..598d205 --- /dev/null +++ b/Sanity/bz2011389-Loading-etc-vimrc-virc/runtest.sh @@ -0,0 +1,142 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Sanity/bz2011389-Loading-etc-vimrc-virc +# Description: Test whether we load system wide vimrcs +# Author: Zdenek Dohnal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE_VI="vim-minimal" +PACKAGE_VIM="vim-enhanced" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE_VI + rlAssertRpm $PACKAGE_VIM + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlFileBackup /etc/virc + rlFileBackup /etc/vimrc + DEFAULTS_FILE=`rpm -ql vim-common | grep defaults` + rlFileBackup $DEFAULTS_FILE + rlPhaseEnd + + rlPhaseStartTest "VIM" + rlLog "# Default configuration - system vimrc and defaults.vim loaded #" + rlRun "vim -c scriptnames -c q &> log" + rlAssertGrep "/etc/vimrc" log + rlAssertNotGrep "~/.vimrc" log + rlAssertGrep "defaults.vim" log + + rlLog "# Created user vimrc - system and user vimrc loaded, defaults not #" + rlRun "touch ~/.vimrc" + rlRun "vim -c scriptnames -c q &> log" + rlAssertGrep "/etc/vimrc" log + rlAssertGrep "~/.vimrc" log + rlAssertNotGrep "defaults.vim" log + + rlLog "# Remove user vimrc and put skip_defaults_vim into system vimrc #" + rlLog "# system vimrc and defaults are loaded, but settings from defaults #" + rlLog "# are skipped #" + rlRun "rm -f ~/.vimrc" + rlRun "echo 'let skip_defaults_vim = 1' >> /etc/vimrc" + rlRun "vim -c scriptnames -c 'set history?' -c q &> log" + rlAssertGrep "/etc/vimrc" log + rlAssertNotGrep "~/.vimrc" log + rlAssertGrep "defaults.vim" log + # if defaults.vim isn't loaded, history is 50 from /etc/vimrc + rlAssertGrep "history=50" log + rlRun "sed -i 's,let skip_defaults_vim = 1,,' /etc/vimrc" + rlPhaseEnd + + rlPhaseStartTest "VI->VIM via alias" + if (rlIsRHEL '<=8' || rlIsCentOS '<=8') && [ "$USER" = "root" ] + then + rlLog "RHEL 8 and older detected - vi is used for root, covered by next test" + else + rlLog "# Default configuration - system vimrc and defaults.vim loaded #" + rlRun "vi -c scriptnames -c q &> log" + rlAssertGrep "/etc/vimrc" log + rlAssertNotGrep "~/.vimrc" log + rlAssertGrep "defaults.vim" log + + rlLog "# Created user vimrc - system and user vimrc loaded, defaults not #" + rlRun "touch ~/.vimrc" + rlRun "vi -c scriptnames -c q &> log" + rlAssertGrep "/etc/vimrc" log + rlAssertGrep "~/.vimrc" log + rlAssertNotGrep "defaults.vim" log + + rlLog "# Remove user vimrc and put skip_defaults_vim into system vimrc #" + rlLog "# system vimrc and defaults are loaded, but settings from defaults #" + rlLog "# are skipped #" + rlRun "rm -f ~/.vimrc" + rlRun "echo 'let skip_defaults_vim = 1' >> /etc/vimrc" + rlRun "vi -c scriptnames -c 'set history?' -c q &> log" + rlAssertGrep "/etc/vimrc" log + rlAssertNotGrep "~/.vimrc" log + rlAssertGrep "defaults.vim" log + rlAssertGrep "history=50" log + rlRun "sed -i 's,let skip_defaults_vim = 1,,' /etc/vimrc" + fi + rlPhaseEnd + + rlPhaseStartTest "VI" + rlRun "dnf -y remove vim-enhanced vim-common" + + rlLog "# scriptnames doesn't work for vi, we need to check settings themselves" + rlLog "# Default configuration - system virc and defaults.vim loaded #" + rlRun "echo 'set nu' >> /etc/virc" + rlRun "vi -c 'set history?' -c 'set nu?' -c q &> log" + if rlIsRHEL '>9' || rlIsCentOS '>9' || rlIsFedora + then + rlAssertGrep "history=200" log + else + rlLog "No defaults.vim for vi on RHEL <= 9" + rlAssertGrep "history=50" log + fi + rlAssertGrep "number" log + + rlLog "# Created user virc - system and user virc loaded, defaults not #" + rlRun "echo 'set autoindent' > ~/.virc" + rlRun "vi -c 'set autoindent?' -c 'set history?' -c q &> log" + # if contains title, .virc was loaded + rlAssertGrep "autoindent" log + # if history is 50, defaults.vim (which sets it to 200) wasn't loaded and /etc/virc was + # loaded + rlAssertGrep "history=50" log + + rlRun "dnf -y install vim-enhanced vim-common" 0 "Install vim" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "rm -f ~/.vimrc" + rlRun "rm -f ~/.virc" + rlFileRestore + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/Sanity/upstream-scripttests/main.fmf b/Sanity/upstream-scripttests/main.fmf new file mode 100644 index 0000000..9668901 --- /dev/null +++ b/Sanity/upstream-scripttests/main.fmf @@ -0,0 +1,53 @@ +summary: Upstream script tests +description: '' +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-enhanced + - rpm-build + - gcc + - Xvfb + - python3 + - python3-devel + - perl-devel + - perl + - perl-generators + - perl-ExtUtils-ParseXS + - perl-ExtUtils-Embed + - libsodium-devel + - ruby + - ruby-devel + - lua-devel + - gpm-devel + - perl-ExtUtils-Embed + - libacl-devel + - ncurses-devel + - python3-dnf-plugins-core + - libtool + - ncurses-term +duration: 40m +enabled: true +tag: + - Tier1 +tier: '1' +link: + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2004974 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2011389 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2011424 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2011429 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2011749 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2011412 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2002320 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2004976 + - relates: https://bugzilla.redhat.com/show_bug.cgi?id=2015517 +adjust: + - enabled: false + when: distro < rhel-6 + continue: false +extra-nitrate: TC#0602359 +extra-summary: /CoreOS/vim/Sanity/upstream-scripttests +extra-task: /CoreOS/vim/Sanity/upstream-scripttests +id: 21a20fd5-2bcf-439b-8e58-1094e10e7078 diff --git a/Sanity/upstream-scripttests/runtest.sh b/Sanity/upstream-scripttests/runtest.sh new file mode 100755 index 0000000..1809d94 --- /dev/null +++ b/Sanity/upstream-scripttests/runtest.sh @@ -0,0 +1,166 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Sanity/upstream-scripttests +# Description: Runs upstream scripttests +# Authors: Zdenek Dohnal +# Patrik Mosko +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2019 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim-enhanced" # tested package +TESTER="vimtester" # USERname which we use for testing +TEST=scripttests # main target for `make` +SET_XVFB="NO" # Do we want to setup `Xvfb` before testing? +TERM_type="xterm-256color" # terminfo type set before running tests +set -o pipefail # because test output is piped to `tee` + +if rlIsRHEL 8 +then + CONFOPT="--build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-features=huge --enable-python3interp=dynamic --enable-perlinterp=dynamic --disable-tclinterp --with-x=no --enable-gui=no --enable-multibyte --enable-cscope --with-tlib=ncurses --enable-fips-warning --enable-netbeans --enable-rubyinterp=dynamic --enable-luainterp=dynamic" +elif rlIsRHEL 9 +then + CONFOPT="--build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-features=huge --enable-python3interp=dynamic --enable-perlinterp=dynamic --disable-tclinterp --with-x=no --enable-gui=no --enable-multibyte --enable-cscope --with-tlib=ncurses --enable-fips-warning --enable-netbeans --enable-rubyinterp=dynamic --enable-luainterp=dynamic --disable-canberra" +else + CONFOPT="--build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-features=huge --enable-python3interp=dynamic --enable-perlinterp=dynamic --disable-tclinterp --with-x=no --enable-gui=no --enable-multibyte --enable-cscope --with-tlib=ncurses --enable-fips-warning --enable-netbeans --enable-rubyinterp=dynamic --enable-luainterp=dynamic --enable-libsodium --disable-canberra" +fi + +_Cleanup_Phase() { + rlPhaseStartCleanup + kill $XVFB_PID + rlFileRestore + rlRun "popd" + rlRun "userdel -frZ $TESTER" 0 "Removing user $TESTER" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +} + +rlJournalStart +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + rlPhaseStartSetup Setup + rlAssertRpm $PACKAGE + rlFileBackup /etc/vimrc + rlRun "rm -f /etc/vimrc" 0 "Remove system wide vimrc, breaks the test suite" + + if rlIsFedora + then + rlRun "dnf -y install libsodium-devel" + fi + + # prepare the user account + rlRun "useradd $TESTER" 0 "Creating user $TESTER" + # we cannot use /tmp here, because Test_write_backup_symlink() from test_writefile.vim fails because of that. + # It happens because the test expects there is a backup file created, but it isn't + # because the default Vim settings for skipping doing backup in certain directories is + # /tmp/*, so our scope where we run the test matches the wildcard, giving us the test + # failure. + rlRun "TmpDir=\"/var/tmp/vim-upstream-scripttests-$(echo $RANDOM)\"" 0 "Creating tmp directory name" + rlRun "mkdir $TmpDir" 0 "Create the temp dir" + rlRun "pushd $TmpDir" + + # extract the test suite + rlRun "rlFetchSrcForInstalled $PACKAGE" 0 "Fetching the source rpm" + rlRun "rpm --define '_topdir $TmpDir' -i *src.rpm" 0 "Installing the source rpm" + rlRun "mkdir BUILD" 0 "Creating BUILD directory" + rlRun "rpmbuild --nodeps --define '_topdir $TmpDir' -bp $TmpDir/SPECS/*spec" \ + 0 "Preparing sources" + + ## Disabling tests unstable on testing-farm + #if grep -r "testing-farm" /var/ARTIFACTS/*/plans/all/discover/default-0/tests || hostname | grep -q "testing-farm"; then + # rlLog "Disabling tests unstable on testing-farm" + # rlLog "Disabled tests Test_opt_set_keycode, Test_set_completion" + # sed -i "/^func Test_opt_set_keycode\(\)/,/^endfunc$/d" BUILD/vim*/src/testdir/test_options.vim + # sed -i "/^func Test_set_completion\(\)/,/^endfunc$/d" BUILD/vim*/src/testdir/test_options.vim + #fi + + if rlIsFedora || rlIsRHELLike '>9' + then + rlRun "rm -rf BUILD/*SPECPARTS &> /dev/null" 0,1 "Remove the additional directory if exists" + fi + rlRun "ls -lah BUILD" + rlRun "cd BUILD/vim*" + rlRun "chown -R $TESTER.$TESTER $TmpDir" 0 "Setting permissions" + rlRun "export LANG=en_US.UTF-8" 0 "Setting \$LANG to US locale" + + # need to get ruby CFLAGS, because configure script fails otherwise - Vim configure script + # drags in ruby LDFLAGS, but not its CFLAGS + rlRun "RUBY_CFLAGS='`ruby -r rbconfig -e "puts RbConfig::CONFIG['CFLAGS']"`'" 0 "Get ruby CFLAGS" + rlRun "export CFLAGS='$RUBY_CFLAGS'" 0 "Set ruby CFLAGS" + + # show relevant info & ENV variables + rlLog "TEST: $TEST" + rlLog "CONFOPT: $CONFOPT" + rlLog "TERM (default): $TERM" + rlLog "TERM (testing): $TERM_type" + rlRun -l "vim --version" + rlPhaseEnd + +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # untested properly - because it wasn't needed yet + [ "$SET_XVFB" = "YES" ] && { + rlPhaseStartSetup "Setup virtual framebuffer - Xvfb" + # alternative: 'xvfb-run -w 10 make TARGET' + # note: upstream CI test-run example: https://travis-ci.org/vim/vim/jobs/561452534 + rlRun "Xvfb :99 -screen 0 1024x768x24 -ac +extension GLX +render -noreset &" + XVFB_PID=$! + sleep 10 + rlRun "export DISPLAY=99.0" + rlRun "modinfo snd-dummy" + rlRun "modprobe snd-dummy" + rlRun "usermod -a -G audio $TESTER" + rlPhaseEnd + } + +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + rlPhaseStartTest Testing "Testing: make $TEST" + # important: beaker defaults to vt100, which is not enough for some tests! + rlRun "TERM=$TERM_type" + + # following block of code is taken from upstream travis.yml + rlRun "su $TESTER -c './configure ${CONFOPT} CFLAGS=\"${CFLAGS} $RUBY_FLAGS\"'" 0 "Configure Vim" + rlRun "su $TESTER -c 'make'" 0 "Build the binary which we substitute" + rlRun "su $TESTER -c 'ln -sf /usr/bin/vim src/vim'" 0 "Create symlink to installed vim for testing" + rlRun "su $TESTER -c 'TERM=$TERM_type make ${TEST} |& tee output_main'" 0,2 "Run tests (skip builtin terminal errors)" + _res_=$? + + # final checks + if grep -iq "No rule to make target.*${TEST}" output_main; then + rlLogError "This version of Vim doesn't include tests for target '$TEST'" + elif [ $_res_ -eq 0 ]; then + rlPass "Test run finished smoothly: no errors!" + rlIsRHEL '>7' && rlRun "grep 'ALL DONE' output_main" + else + rlFail "Something went wrong!" + fi + rlAssertNotGrep "TEST FAILURE" output_main + + rlFileSubmit "output_main" + rlPhaseEnd + +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + _Cleanup_Phase +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +rlJournalPrintText +rlJournalEnd diff --git a/Sanity/upstream-unittests/main.fmf b/Sanity/upstream-unittests/main.fmf new file mode 100644 index 0000000..d5c1c67 --- /dev/null +++ b/Sanity/upstream-unittests/main.fmf @@ -0,0 +1,37 @@ +summary: upstream-unittests +description: 'Runs upstream unit tests' +contact: fhrdina@redhat.com +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-enhanced + - rpm-build + - autoconf + - gcc + - python3 + - python3-yaml + - python3-devel + - python-devel + - ruby + - ruby-devel + - lua-devel + - gpm-devel + - perl-ExtUtils-Embed + - libacl-devel + - libXpm-devel + - ncurses-devel +duration: 1h +enabled: true +tag: + - Tier1 +tier: '1' +adjust: + - enabled: false + when: distro < rhel-7 + continue: false +extra-nitrate: TC#0602358 +extra-summary: /CoreOS/vim/Sanity/upstream-unittests +extra-task: /CoreOS/vim/Sanity/upstream-unittests +id: 443303f9-e541-4532-a62c-77fb3bd3e0a3 \ No newline at end of file diff --git a/Sanity/upstream-unittests/runtest.sh b/Sanity/upstream-unittests/runtest.sh new file mode 100755 index 0000000..f7e0d7f --- /dev/null +++ b/Sanity/upstream-unittests/runtest.sh @@ -0,0 +1,121 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Sanity/upstream-unittests +# Description: Runs upstream unittests +# Authors: Zdenek Dohnal +# Patrik Mosko +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2019 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="vim-enhanced" # tested package +TESTER="vimtester" # USERname which we use for testing +TEST=unittests # main target for `make` +TERM_type=xterm # terminfo type set before running tests +set -o pipefail # because test output is piped to `tee` + +if rlIsRHEL 8 +then + CONFOPT="--prefix=/usr --with-features=huge --enable-python3interp=dynamic --enable-perlinterp=dynamic --disable-tclinterp --with-x=no --enable-gui=no --exec-prefix=/usr --enable-multibyte --enable-cscope --with-tlib=ncurses --enable-fips-warning --enable-netbeans --enable-rubyinterp=dynamic --enable-luainterp=dynamic" +elif rlIsRHEL 9 +then + CONFOPT="--prefix=/usr --with-features=huge --enable-python3interp=dynamic --enable-perlinterp=dynamic --disable-tclinterp --with-x=no --enable-gui=no --exec-prefix=/usr --enable-multibyte --enable-cscope --with-tlib=ncurses --enable-fips-warning --enable-netbeans --enable-rubyinterp=dynamic --enable-luainterp=dynamic --disable-canberra" +else + CONFOPT="--prefix=/usr --with-features=huge --enable-python3interp=dynamic --enable-perlinterp=dynamic --disable-tclinterp --with-x=no --enable-gui=no --exec-prefix=/usr --enable-multibyte --enable-cscope --with-tlib=ncurses --enable-fips-warning --enable-netbeans --enable-rubyinterp=dynamic --enable-luainterp=dynamic --enable-libsodium --disable-canberra" +fi + + +rlJournalStart +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + rlPhaseStartSetup Setup + rlAssertRpm $PACKAGE + + # prepare the user account + rlRun "useradd $TESTER" 0 "Creating user $TESTER" + rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + + # extract the test suite + rlRun "rlFetchSrcForInstalled $PACKAGE" 0 "Fetching the source rpm" + rlRun "rpm --define '_topdir $TmpDir' -i *src.rpm" 0 "Installing the source rpm" + rlRun "mkdir BUILD" 0 "Creating BUILD directory" + rlRun "rpmbuild --nodeps --define '_topdir $TmpDir' -bp $TmpDir/SPECS/*spec" \ + 0 "Preparing sources" + rm -rf BUILD/*SPECPARTS + ls -lahR BUILD/ + rlRun "cd BUILD/vim*" + rlRun "chown -R $TESTER.$TESTER $TmpDir" 0 "Setting permissions" + rlRun "export LANG=en_US.UTF-8" 0 "Setting \$LANG to US locale" + + # need to get ruby CFLAGS, because configure script fails otherwise - Vim configure script + # drags in ruby LDFLAGS, but not its CFLAGS + rlRun "RUBY_CFLAGS='`ruby -r rbconfig -e "puts RbConfig::CONFIG['CFLAGS']"`'" 0 "Get ruby CFLAGS" + rlRun "export CFLAGS='$RUBY_CFLAGS'" 0 "Set ruby CFLAGS" + + # newer redhat-rpm-config brings in packager-notes script, which breaks LDFLAGS we get from Ruby + # we need to set several env variable randomly to get configure working again... + rlRun "RPM_WORKAROUND='RPM_ARCH=\"x86_64\" RPM_PACKAGE_RELEASE=\"1\" RPM_PACKAGE_VERSION=\"1\" RPM_PACKAGE_NAME=\"vim\"'" + + # show relevant info & ENV variables + rlLog "TEST: $TEST" + rlLog "CONFOPT: $CONFOPT" + rlLog "FEATURES: $FEATURES" + rlLog "TERM (default): $TERM" + rlLog "TERM (testing): $TERM_type" + rlRun -l "vim --version" + rlPhaseEnd + +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + rlPhaseStartTest "Testing: make $TEST" + # important: beaker defaults to vt100, which is not enough for some tests! + rlRun "TERM=$TERM_type" + + # following block of code is taken from upstream travis.yml + rlRun "su $TESTER -c './configure ${CONFOPT} CFLAGS=\"${CFLAGS} $RUBY_FLAGS\" $RPM_WORKAROUND'" 0 "Configure Vim" + rlRun "su $TESTER -c '$RPM_WORKAROUND make'" 0 "Build the binary which we substitute" + rlRun "su $TESTER -c 'ln -sf /usr/bin/vim src/vim'" 0 "Create symlink to installed vim for testing" + rlRun "su $TESTER -c 'make ${TEST} |& tee output'" 0,2 "Run tests (skip builtin terminal errors)" + _res_=$? + + # final checks + if grep -iq "No rule to make target.*${TEST}" output; then + rlLogError "This version of Vim doesn't include tests for target '$TEST'" + elif [ $_res_ -eq 0 ]; then + rlPass "Test run finished smoothly: no errors!" + else + rlFail "Something went wrong!" + fi + + rlFileSubmit "output" + rlPhaseEnd + +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + rlPhaseStartCleanup + rlRun "popd" + rlRun "userdel -frZ $TESTER" 0 "Removing user $TESTER" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +rlJournalPrintText +rlJournalEnd diff --git a/Sanity/vim-aliases/main.fmf b/Sanity/vim-aliases/main.fmf new file mode 100644 index 0000000..7f8d562 --- /dev/null +++ b/Sanity/vim-aliases/main.fmf @@ -0,0 +1,29 @@ +summary: vim-aliases +description: 'Test checks whether vi/vim/view aliases via wrappers work' +contact: Frantisek Hrdina +component: + - vim +test: ./runtest.sh +framework: beakerlib +recommend: + - vim-minimal + - vim-enhanced + - ksh + - zsh + - tcsh +duration: 10m +enabled: true +tag: + - Tier1 +tier: '1' +adjust: + - enabled: false + when: distro < rhel-9 + continue: false + - enabled: false + when: distro < centos-stream-9 + continue: false +extra-nitrate: TC#0609483 +extra-summary: /CoreOS/vim/Sanity/vim-aliases +extra-task: /CoreOS/vim/Sanity/vim-aliases +id: dce94fce-5106-4a06-9396-45ae58e44ce7 \ No newline at end of file diff --git a/Sanity/vim-aliases/runtest.sh b/Sanity/vim-aliases/runtest.sh new file mode 100755 index 0000000..f487b44 --- /dev/null +++ b/Sanity/vim-aliases/runtest.sh @@ -0,0 +1,131 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/vim/Sanity/vim-aliases +# Description: Test checks whether vi/vim/view 'aliases' via wrappers work +# Author: Zdenek Dohnal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +VIM_PACKAGE="vim-enhanced" +VI_PACKAGE="vim-minimal" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $VIM_PACKAGE + rlAssertRpm $VI_PACKAGE + + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlPhaseEnd + + rlPhaseStartTest + for shell in bash ksh zsh + do + if test "$shell" == "tcsh" + then + ERRNO=1 + else + ERRNO=127 + fi + + rlLog "==============================================================" + rlLog "$shell: Running vi/vim/view" + rlLog "==============================================================" + rlLog "Minimal and Enhanced installed, using vim for all commands." + rlLog "--------------------------------------------------------------" + for app in /usr/bin/vi /usr/bin/view /usr/bin/vim + do + rlLog "$shell: Running $app" + $shell -c "$app --version > out" + rlAssertGrep 'Huge version without GUI' out + + rlLog "$shell: Running $app under sudo" + sudo $shell -c "$app --version > sudo_out" + rlAssertGrep 'Huge version without GUI' sudo_out + done + + rlRun "dnf -y remove $VI_PACKAGE" 0 "Remove vi" + rlLog "--------------------------------------------------------------" + rlLog "Enhanced installed, vi/view fail, vim works." + rlLog "--------------------------------------------------------------" + + for app in /usr/bin/vi /usr/bin/view + do + rlLog "$shell: Running $app" + rlRun "$shell -c \"$app --version\"" $ERRNO "$app is missing, the command will fail." + + rlLog "$shell: Running $app under sudo" + rlRun "sudo $shell -c \"$app --version\"" $ERRNO "SUDO: $app is missing, the command will fail." + done + + rlLog "$shell: Running /usr/bin/vim" + $shell -c "/usr/bin/vim --version > out" + rlAssertGrep 'Huge version without GUI' out + + rlLog "$shell: Running /usr/bin/vim under sudo" + sudo $shell -c "/usr/bin/vim --version > sudo_out" + rlAssertGrep 'Huge version without GUI' sudo_out + + rlRun "dnf -y install $VI_PACKAGE" 0 "Install vi" + rlRun "dnf -y remove $VIM_PACKAGE" 0 "Remove vim" + rlLog "--------------------------------------------------------------" + rlLog "Minimal installed, using vi for vi and view commands." + rlLog "--------------------------------------------------------------" + + for app in /usr/bin/vi /usr/bin/view + do + if rlIsFedora || rlIsRHELLike '>=10'; then + str="Tiny" + else + str="Small" + fi + rlLog "$shell: Running $app" + $shell -c "$app --version > out" + rlAssertGrep ''$str' version without GUI' out + + rlLog "$shell: Running $app under sudo" + sudo $shell -c "$app --version > sudo_out" + rlAssertGrep ''$str' version without GUI' sudo_out + done + + rlLog "--------------------------------------------------------------" + rlLog "Minimal installed, vim command should fail." + rlLog "--------------------------------------------------------------" + + rlLog "$shell: Running /usr/bin/vim" + rlRun "$shell -c \"/usr/bin/vim --version\"" $ERRNO "vim is missing, the command will fail" + + rlLog "$shell: Running /usr/bin/vim under sudo" + rlRun "sudo $shell -c \"/usr/bin/vim --version\"" $ERRNO "SUDO: vim is missing, the command will fail" + rlRun "dnf -y install $VIM_PACKAGE" 0 "Install vim" + done + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/main.fmf b/main.fmf new file mode 100644 index 0000000..3c48c8f --- /dev/null +++ b/main.fmf @@ -0,0 +1,2 @@ +# QE owner +contact: Frantisek Hrdina diff --git a/plans/all.fmf b/plans/all.fmf new file mode 100644 index 0000000..e1a0780 --- /dev/null +++ b/plans/all.fmf @@ -0,0 +1,5 @@ +summary: Run all tests +discover: + how: fmf +execute: + how: tmt