Compare commits

..

27 commits

Author SHA1 Message Date
Fedora Release Engineering
f53e4461d9 Branching f31 from rawhide, fourth attempt after platform:f32 enablement due to https://pagure.io/releng/issue/8664
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-09-22 02:43:05 +00:00
Petr Písař
030c133905 Reference Perl home page and documentation
It does not make sense to refernce Modularity technology as all
modules would have the same links. It's better to point to the
packaged software. Thus we will link to Perl upstream home page and
Perl language documentation. However, we will retain Fedora's
Bugzilla as the bug tracker because the upstream should not be
bothered with the bugs in a packaging.
2019-09-18 10:02:30 +02:00
Petr Písař
71e1d55305 Add "common" profile
"common" is the new name for "default" profile. We keep both for
a backward compatibility in stable Fedoras. Newer streams will remove
the "default" profile.
2019-09-18 10:02:30 +02:00
Fedora Release Engineering
bbed09c20f Branching f31 from rawhide, second attempt after platform:f31 enablement
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-09-04 19:19:35 +00:00
Fedora Release Engineering
3ad3c8e932 Branching f31 from rawhide, second attempt after platform:f32 enablement
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-08-26 14:02:05 +00:00
Fedora Release Engineering
8e7170126e Branching f31 from rawhide
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-08-13 20:00:41 +00:00
Fedora Release Engineering
501614ea03 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-08-12 15:04:01 +00:00
Fedora Release Engineering
9411ab0f73 Branching f30 from rawhide, second attempt after platform:f31 enablement
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-03-04 18:11:16 +00:00
Fedora Release Engineering
23c384686e Branching f30 from rawhide
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-03-01 19:19:20 +00:00
Fedora Release Engineering
1d76f0274c - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-02-18 22:58:04 +00:00
Petr Písař
6ee059cf46 Dummy commit
Retry dist-git failure.
2018-12-07 10:36:23 +01:00
Petr Písař
ab63f51301 Dummy commit
Retry dist-git failure (git clone -n
https://src.fedoraproject.org/rpms/perl-IPC-System-Simple: error: RPC failed).
2018-12-07 09:33:12 +01:00
Petr Písař
ed321419bc Dummy commit
Adding a build for platform:f30.
2018-12-07 07:49:09 +01:00
Petr Písař
3d2e47d1fa Dummy commit
Rebuild with perl 5.26.1.
2018-12-05 11:59:46 +01:00
Petr Písař
b7ea70e535 Dummy commit
One expanded build failed because perl-bootrap was not finished.
2018-04-17 13:26:47 +02:00
Petr Písař
6da8548608 Fix v2 modulemd syntax 2018-04-06 11:55:37 +02:00
Petr Písař
37e9343247 Migrate to modulemd v2 and expand to all platforms 2018-03-14 16:22:32 +01:00
Petr Písař
42426ad8da Pin rpms to f28 branch
Fedora 28 is the latest release with Perl 5.26. Fedora 29 will have
Perl 5.28.
2018-03-07 14:31:51 +01:00
Petr Písař
18934db8c7 Dummy commit 2018-02-20 14:35:47 +01:00
Petr Písař
b5e086d23b Dummy commit 2018-02-19 17:45:55 +01:00
Jitka Plesnikova
a895eaf33e Fix typo in macro 2018-01-30 09:58:22 +01:00
Petr Písař
c2c9d877de Build on top of platform:f28
Stream expansion is not yet supported.
2018-01-17 09:34:50 +01:00
Petr Písař
943a8626ca Transitive module build-requires are honored now 2018-01-17 09:34:24 +01:00
Petr Písař
dfccc8899a Platform provides groff and systemtap 2018-01-17 09:31:53 +01:00
Petr Písař
5e62b14431 Remove duplicated perl-Time-HiRes entries 2017-11-10 14:39:30 +01:00
Jitka Plesnikova
e0d7bae567 Used platform f27 for Perl 5.26 2017-11-03 09:54:54 +01:00
Jitka Plesnikova
8aaf3f4b2e Disable optional tests for perl-Test-Simple 2017-10-27 09:27:20 +02:00
16 changed files with 803 additions and 1 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
.idea

11
Dockerfile Normal file
View file

@ -0,0 +1,11 @@
FROM baseruntime/baseruntime:latest
COPY repos/* /etc/yum.repos.d/
RUN microdnf --nodocs --enablerepo perl install perl perl-devel && \
microdnf clean all
EXPOSE 8080
CMD /bin/bash

15
Makefile Normal file
View file

@ -0,0 +1,15 @@
IMAGE_NAME = perl
MODULEMDURL=file://perl.yaml
default: run
build:
docker build --tag=$(IMAGE_NAME) .
run: build
docker run -d $(IMAGE_NAME)
test: build
cd tests; MODULE=docker MODULEMD=$(MODULEMDURL) URL="docker=$(IMAGE_NAME)" make all
cd tests; MODULE=rpm MODULEMD=$(MODULEMDURL) URL="docker=$(IMAGE_NAME)" make all

19
README.md Normal file
View file

@ -0,0 +1,19 @@
# perl module
[**Package DB** (owner)](https://admin.fedoraproject.org/pkgdb/package/modules/perl/) |
[**F26 modulemd** (source)](http://pkgs.fedoraproject.org/cgit/modules/perl.git/tree/perl.yaml?h=f26) |
[**PDC** (result)](https://pdc.fedoraproject.org/rest_api/v1/unreleasedvariants/?active=True&variant_name=perl)
Module containing important perl packages.
## Current state
| State | Description |
|-------|-------------|
| ✓ YES | **Build passes** in the infra (all build deps are ok) |
| ✓ YES | **Installs** on the Base Runtime (all runtime deps are ok) |
| ✓ YES | **No bootstrap** - uses only proper modules |
| ✓ YES | General **tests are in dist-git** |
| ✓ YES | General **tests pass** |
| ✗ NO | Meets the **Fedora Module Packaging Guidelines** |

View file

@ -1 +0,0 @@
Unsupported

500
perl.yaml Normal file
View file

@ -0,0 +1,500 @@
document: modulemd
version: 2
data:
summary: Practical Extraction and Report Language
description: >
Perl is a high-level programming language with roots in C, sed, awk
and shell scripting. Perl is good at handling processes and files, and
is especially good at handling text. Perl's hallmarks are practicality
and efficiency. While it is used to do a lot of different things,
Perl's most common applications are system administration utilities
and web programming.
license:
module: [ MIT ]
dependencies:
- buildrequires:
platform: []
perl-bootstrap: [5.26]
requires:
platform: []
references:
community: https://www.perl.org/
documentation: https://www.perl.org/docs.html
tracker: https://bugzilla.redhat.com/buglist.cgi?classification=Fedora&product=Fedora%20Modules&component=perl
profiles:
common:
description: Interpreter and all Perl modules bundled within upstream Perl.
rpms:
- perl
default:
description: Interpreter and all Perl modules bundled within upstream Perl.
rpms:
- perl
minimal:
description: Only the interpreter as a standalone executable.
rpms:
- perl-interpreter
api:
rpms:
- perl
- perl-Archive-Tar
- perl-Attribute-Handlers
- perl-autodie
- perl-B-Debug
- perl-bignum
- perl-Carp
- perl-Compress-Raw-Bzip2
- perl-Compress-Raw-Zlib
- perl-Config-Perl-V
- perl-constant
- perl-CPAN
- perl-CPAN-Meta
- perl-CPAN-Meta-Requirements
- perl-CPAN-Meta-YAML
- perl-Data-Dumper
- perl-DB_File
- perl-devel
- perl-Devel-Peek
- perl-Devel-PPPort
- perl-Devel-SelfStubber
- perl-Digest
- perl-Digest-MD5
- perl-Digest-SHA
- perl-Encode
- perl-Encode-devel
- perl-encoding
- perl-Env
- perl-Errno
- perl-experimental
- perl-Exporter
- perl-ExtUtils-CBuilder
- perl-ExtUtils-Command
- perl-ExtUtils-Embed
- perl-ExtUtils-Install
- perl-ExtUtils-MakeMaker
- perl-ExtUtils-Manifest
- perl-ExtUtils-Miniperl
- perl-ExtUtils-MM-Utils
- perl-ExtUtils-ParseXS
- perl-File-Fetch
- perl-File-Path
- perl-File-Temp
- perl-Filter
- perl-Filter-Simple
- perl-generators
- perl-Getopt-Long
- perl-HTTP-Tiny
- perl-interpreter
- perl-IO
- perl-IO-Compress
- perl-IO-Socket-IP
- perl-IO-Zlib
- perl-IPC-Cmd
- perl-IPC-SysV
- perl-JSON-PP
- perl-libnet
- perl-libnetcfg
- perl-libs
- perl-Locale-Codes
- perl-Locale-Maketext
- perl-Locale-Maketext-Simple
- perl-macros
- perl-Math-BigInt
- perl-Math-BigInt-FastCalc
- perl-Math-BigRat
- perl-Math-Complex
- perl-Memoize
- perl-MIME-Base64
- perl-Module-CoreList
- perl-Module-CoreList-tools
- perl-Module-Load
- perl-Module-Load-Conditional
- perl-Module-Loaded
- perl-Module-Metadata
- perl-Net-Ping
- perl-open
- perl-Params-Check
- perl-parent
- perl-PathTools
- perl-Perl-OSType
- perl-perlfaq
- perl-PerlIO-via-QuotedPrint
- perl-Pod-Checker
- perl-Pod-Escapes
- perl-Pod-Html
- perl-Pod-Parser
- perl-Pod-Perldoc
- perl-Pod-Simple
- perl-Pod-Usage
- perl-podlators
- perl-Scalar-List-Utils
- perl-SelfLoader
- perl-Socket
- perl-Storable
- perl-Sys-Syslog
- perl-Term-ANSIColor
- perl-Term-Cap
- perl-Test
- perl-Test-Harness
- perl-Test-Simple
- perl-tests
- perl-Text-Balanced
- perl-Text-ParseWords
- perl-Text-Tabs+Wrap
- perl-Thread-Queue
- perl-threads
- perl-threads-shared
- perl-Time-HiRes
- perl-Time-Local
- perl-Time-Piece
- perl-Unicode-Collate
- perl-Unicode-Normalize
- perl-utils
- perl-version
buildopts:
rpms:
macros: |
%_with_perl_enables_groff 1
%_without_perl_enables_syslog_test 1
%_with_perl_enables_systemtap 1
%_without_perl_enables_tcsh 1
%_without_perl_Compress_Bzip2_enables_optional_test 1
%_without_perl_CPAN_Meta_Requirements_enables_optional_test 1
%_without_perl_IPC_System_Simple_enables_optional_test 1
%_without_perl_LWP_MediaTypes_enables_mailcap 1
%_without_perl_Module_Build_enables_optional_test 1
%_without_perl_Perl_OSType_enables_optional_test 1
%_without_perl_Pod_Perldoc_enables_tk_test 1
%_without_perl_Software_License_enables_optional_test 1
%_without_perl_Sys_Syslog_enables_optional_test 1
%_without_perl_Test_Harness_enables_optional_test 1
%_without_perl_Test_Simple_enables_optional_test 1
%_without_perl_URI_enables_Business_ISBN 1
components:
rpms:
# We can rebuild in a random order because we have all binary
# packages available from perl-bootstrap.
perl:
rationale: The Perl interpreter.
ref: f28
perl-Algorithm-Diff:
rationale: A run-time dependency.
ref: f28
perl-Archive-Tar:
rationale: Core Perl API.
ref: f28
perl-Archive-Zip:
rationale: A run-time dependency.
ref: f28
perl-autodie:
rationale: Core Perl API.
ref: f28
perl-B-Debug:
rationale: Core Perl API.
ref: f28
perl-bignum:
rationale: Core Perl API.
ref: f28
perl-Carp:
rationale: Core Perl API.
ref: f28
perl-Compress-Bzip2:
rationale: A run-time dependency.
ref: f28
perl-Compress-Raw-Bzip2:
rationale: Core Perl API.
ref: f28
perl-Compress-Raw-Zlib:
rationale: Core Perl API.
ref: f28
perl-Config-Perl-V:
rationale: Core Perl API.
ref: f28
perl-constant:
rationale: Core Perl API.
ref: f28
perl-CPAN:
rationale: Core Perl API.
ref: f28
perl-CPAN-Meta:
rationale: Core Perl API.
ref: f28
perl-CPAN-Meta-Requirements:
rationale: Core Perl API.
ref: f28
perl-CPAN-Meta-YAML:
rationale: Core Perl API.
ref: f28
perl-Data-Dumper:
rationale: Core Perl API.
ref: f28
perl-Data-OptList:
rationale: A run-time dependency.
ref: f28
perl-Data-Section:
rationale: A run-time dependency.
ref: f28
perl-DB_File:
rationale: Core Perl API.
ref: f28
perl-Devel-PPPort:
rationale: Core Perl API.
ref: f28
perl-Devel-Size:
rationale: A run-time dependency.
ref: f28
perl-Digest:
rationale: Core Perl API.
ref: f28
perl-Digest-MD5:
rationale: Core Perl API.
ref: f28
perl-Digest-SHA:
rationale: Core Perl API.
ref: f28
perl-Encode:
rationale: Core Perl API.
ref: f28
perl-Env:
rationale: Core Perl API.
ref: f28
perl-experimental:
rationale: Core Perl API.
ref: f28
perl-Exporter:
rationale: Core Perl API.
ref: f28
perl-ExtUtils-CBuilder:
rationale: Core Perl API.
ref: f28
perl-ExtUtils-Install:
rationale: Core Perl API.
ref: f28
perl-ExtUtils-MakeMaker:
rationale: Core Perl API.
ref: f28
perl-ExtUtils-Manifest:
rationale: Core Perl API.
ref: f28
perl-ExtUtils-ParseXS:
rationale: Core Perl API.
ref: f28
perl-Fedora-VSP:
rationale: A run-time dependency.
ref: f28
perl-File-Fetch:
rationale: Core Perl API.
ref: f28
perl-File-HomeDir:
rationale: A run-time dependency.
ref: f28
perl-File-Path:
rationale: Core Perl API.
ref: f28
perl-File-Temp:
rationale: Core Perl API.
ref: f28
perl-File-Which:
rationale: A run-time dependency.
ref: f28
perl-Filter:
rationale: Core Perl API.
ref: f28
perl-Filter-Simple:
rationale: Core Perl API.
ref: f28
perl-generators:
rationale: RPM dependency generator.
ref: f28
perl-Getopt-Long:
rationale: Core Perl API.
ref: f28
perl-HTTP-Tiny:
rationale: Core Perl API.
ref: f28
perl-inc-latest:
rationale: A run-time dependency.
ref: f28
perl-IO-Compress:
rationale: Core Perl API.
ref: f28
perl-IO-Socket-IP:
rationale: Core Perl API.
ref: f28
perl-IPC-Cmd:
rationale: Core Perl API.
ref: f28
perl-IPC-System-Simple:
rationale: A run-time dependency.
ref: f28
perl-IPC-SysV:
rationale: Core Perl API.
ref: f28
perl-JSON-PP:
rationale: Core Perl API.
ref: f28
perl-libnet:
rationale: Core Perl API.
ref: f28
perl-local-lib:
rationale: A run-time dependency.
ref: f28
perl-Locale-Codes:
rationale: Core Perl API.
ref: f28
perl-Locale-Maketext:
rationale: Core Perl API.
ref: f28
perl-Math-BigInt:
rationale: Core Perl API.
ref: f28
perl-Math-BigInt-FastCalc:
rationale: Core Perl API.
ref: f28
perl-Math-BigRat:
rationale: Core Perl API.
ref: f28
perl-MIME-Base64:
rationale: Core Perl API.
ref: f28
perl-Module-Build:
rationale: A run-time dependency.
ref: f28
perl-Module-CoreList:
rationale: Core Perl API.
ref: f28
perl-Module-Load:
rationale: Core Perl API.
ref: f28
perl-Module-Load-Conditional:
rationale: Core Perl API.
ref: f28
perl-Module-Metadata:
rationale: Core Perl API.
ref: f28
perl-MRO-Compat:
rationale: A run-time dependency.
ref: f28
perl-Package-Generator:
rationale: A run-time dependency.
ref: f28
perl-Params-Check:
rationale: Core Perl API.
ref: f28
perl-Params-Util:
rationale: A run-time dependency.
ref: f28
perl-parent:
rationale: Core Perl API.
ref: f28
perl-PathTools:
rationale: Core Perl API.
ref: f28
perl-Perl-OSType:
rationale: Core Perl API.
ref: f28
perl-perlfaq:
rationale: Core Perl API.
ref: f28
perl-PerlIO-via-QuotedPrint:
rationale: Core Perl API.
ref: f28
perl-Pod-Checker:
rationale: Core Perl API.
ref: f28
perl-Pod-Escapes:
rationale: Core Perl API.
ref: f28
perl-Pod-Parser:
rationale: Core Perl API.
ref: f28
perl-Pod-Perldoc:
rationale: Core Perl API.
ref: f28
perl-Pod-Simple:
rationale: Core Perl API.
ref: f28
perl-Pod-Usage:
rationale: Core Perl API.
ref: f28
perl-podlators:
rationale: Core Perl API.
ref: f28
perl-Scalar-List-Utils:
rationale: Core Perl API.
ref: f28
perl-Socket:
rationale: Core Perl API.
ref: f28
perl-Software-License:
rationale: A run-time dependency.
ref: f28
perl-Storable:
rationale: Core Perl API.
ref: f28
perl-Sub-Exporter:
rationale: A run-time dependency.
ref: f28
perl-Sub-Install:
rationale: A run-time dependency.
ref: f28
perl-Sys-Syslog:
rationale: Core Perl API.
ref: f28
perl-Term-ANSIColor:
rationale: Core Perl API.
ref: f28
perl-Term-Cap:
rationale: Core Perl API.
ref: f28
perl-Test-Harness:
rationale: Core Perl API.
ref: f28
perl-Test-Simple:
rationale: Core Perl API.
ref: f28
perl-Text-Balanced:
rationale: Core Perl API.
ref: f28
perl-Text-Diff:
rationale: A run-time dependency.
ref: f28
perl-Text-Glob:
rationale: A run-time dependency.
ref: f28
perl-Text-ParseWords:
rationale: Core Perl API.
ref: f28
perl-Text-Tabs+Wrap:
rationale: Core Perl API.
ref: f28
perl-Text-Template:
rationale: A run-time dependency.
ref: f28
perl-Thread-Queue:
rationale: Core Perl API.
ref: f28
perl-threads:
rationale: Core Perl API.
ref: f28
perl-threads-shared:
rationale: Core Perl API.
ref: f28
perl-Time-HiRes:
rationale: Core Perl API.
ref: f28
perl-Time-Local:
rationale: Core Perl API.
ref: f28
perl-Unicode-Collate:
rationale: Core Perl API.
ref: f28
perl-Unicode-Normalize:
rationale: Core Perl API.
ref: f28
perl-URI:
rationale: A run-time dependency.
ref: f28
perl-version:
rationale: Core Perl API.
ref: f28

4
repos/fedora.repo Normal file
View file

@ -0,0 +1,4 @@
[fedora]
name=fedora
baseurl=https://mirrors.nic.cz/fedora/linux/development/26/Everything/x86_64/os/
enabled=0

4
repos/perl.repo Normal file
View file

@ -0,0 +1,4 @@
[perl]
name=perl
baseurl=https://kojipkgs.fedoraproject.org/repos/module-fcd86adc7a9c7e0a/latest/x86_64/
enabled=0

0
sources Normal file
View file

6
tests/Makefile Normal file
View file

@ -0,0 +1,6 @@
MODULE_LINT=/usr/share/moduleframework/tools/modulelint.py
CMD=python -m avocado run --filter-by-tags=-WIP $(MODULE_LINT) *.py
#
all:
$(CMD)

13
tests/config.yaml Normal file
View file

@ -0,0 +1,13 @@
document: modularity-testing
version: 1
name: perl
modulemd-url: https://src.fedoraproject.org/cgit/modules/perl.git/plain/perl.yaml
service:
port: 8080
module:
docker:
start: "docker run -it"
container: perl
rpm:
repos:
- http://mirror.vutbr.cz/fedora/releases/26/Everything/x86_64/os/

47
tests/cpan.py Normal file
View file

@ -0,0 +1,47 @@
#
# This Modularity Testing Framework helps you to write tests for modules
# 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
# he 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.
#
# Authors: Rado Pitonak <rpitonak@redhat.com>
#
from avocado import main
from avocado.core import exceptions
from moduleframework import module_framework
class CpanCheck1(module_framework.AvocadoTest):
"""
:avocado: enable
"""
def testInstallPerlModule(self):
self.start()
self.run("microdnf --nodocs --enablerepo fedora install -y cpan cpanminus")
self.run("cpanm install --force Error")
self.run("perl -e \"use Error\"")
def testInstallCModule(self):
self.start()
# install cpan
self.run("microdnf --nodocs --enablerepo fedora install -y cpan cpanminus")
# install gcc and rpm-devel
self.run("microdnf --nodocs --enablerepo fedora install -y gcc rpm-devel")
# install random c module
self.run("cpanm install --force RPM2")
self.run("perl -e \"use RPM2\"")
if __name__ == '__main__':
main()

35
tests/microdnfinside.py Normal file
View file

@ -0,0 +1,35 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# This Modularity Testing Framework helps you to write tests for modules
# 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
# he 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.
#
# Authors: Jan Scotka <jscotka@redhat.com>
#
from moduleframework import module_framework
import os
class microDNFTest(module_framework.AvocadoTest):
"""
:avocado: enable
"""
def testInstallMicroDNFEmpty(self):
self.start()
self.assertIn("Transaction: (empty)",self.run("microdnf install microdnf", ignore_status=True).stdout)

56
tests/rpmvalidator.py Normal file
View file

@ -0,0 +1,56 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# This Modularity Testing Framework helps you to write tests for modules
# 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
# he 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.
#
# Authors: Jan Scotka <jscotka@redhat.com>
#
from avocado import main
from moduleframework import module_framework
class ExampleRpmValidation(module_framework.AvocadoTest):
"""
:avocado: enable
"""
fhs_base_paths = [
'/bin',
'/boot',
'/dev',
'/etc',
'/home',
'/lib',
'/lib64',
'/media',
'/mnt',
'/opt',
'/proc',
'/root',
'/run',
'/sbin',
'/sys',
'/srv',
'/tmp',
'/usr/bin'
]
def testPaths(self):
self.start()
for directory in self.fhs_base_paths:
self.run("test -d %s" % directory)

45
tests/sanity1.py Normal file
View file

@ -0,0 +1,45 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# This Modularity Testing Framework helps you to write tests for modules
# 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
# he 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.
#
# Authors: Rado Pitonak <rpitonak@redhat.com>
#
from avocado import main
from avocado.core import exceptions
from moduleframework import module_framework
class SanityCheck1(module_framework.AvocadoTest):
"""
:avocado: enable
"""
def test1(self):
self.start()
self.run("ls / | grep bin")
# check if perl is installed in the right version.
def test2PerlVersion(self):
perlVersion = "5.24"
module_framework.skipTestIf("perl" not in self.getActualProfile())
self.start()
self.run("perl -v | grep " + perlVersion)
if __name__ == '__main__':
main()

47
tests/simpleTest.py Normal file
View file

@ -0,0 +1,47 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# This Modularity Testing Framework helps you to write tests for modules
# 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
# he 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.
#
# Authors: Jan Scotka <jscotka@redhat.com>
#
from moduleframework import module_framework
import os
class simpleTests(module_framework.AvocadoTest):
"""
:avocado: enable
"""
def testPath(self):
print ">>>>>>>>>>>>>> ", module_framework.__file__
print ">>>>>>>>>>>>>> ", __file__
def testAssertIn(self):
self.start()
self.assertIn("sbin", self.run("ls /").stdout)
def testInsideModule(self):
self.start()
self.assertEqual("a", self.run("echo a").stdout.strip())
def testCommandOnHost(self):
self.start()
self.assertEqual("a", self.runHost("echo a").stdout.strip())