Robert Schweikert's avatar

Robert Schweikert

rjschwei

Involved Projects and Packages

For many APIs with large numbers of classes, it can be very useful to be
able to do a quick once-over to make sure that classes, methods, and
inheritance is correct, before doing more comprehensive testing. This
module aims to provide such a capability.

Perl's garbage collection has one big problem: Circular references can't
get cleaned up. A circular reference can be as simple as two reference
that refer to each other.

Test::Memory::Cycle is built on top of Devel::Cycle to give you an easy
way to check for these circular references.

In situations where you have deep trees of classes, there is a common
situation in which you test a module 4 or 5 subclasses down, which should
follow the correct behaviour of not just the subclass, but of all the
parent classes.

This should be done to ensure that the implementation of a subclass has not
somehow "broken" the object's behaviour in a more general sense.

'Test::Object' is a testing package designed to allow you to easily test
what you believe is a valid object against the expected behaviour of *all*
of the classes in its inheritance tree in one single call.

To do this, you "register" tests (in the form of CODE or function
references) with 'Test::Object', with each test associated with a
particular class.

When you call 'object_ok' in your test script, 'Test::Object' will check
the object against all registered tests. For each class that your object
responds to '$object->isa($class)' for, the appropriate testing function
will be called.

Doing it this way allows adapter objects and other things that respond to
'isa' differently that the default to still be tested against the classes
that it is advertising itself as correctly.

This also means that more than one test might be "counted" for each call to
'object_ok'. You should account for this correctly in your expected test
count.

There are a number of different situations (like testing caching code)
where you want to want to do a number of tests, and then verify that some
underlying subroutine deep within the code was called a specific number of
times.

This module provides a number of functions for doing testing in this way in
association with your normal the Test::More manpage (or similar) test
scripts.

The script monitors that a given directory is/remains empty or does not exist

The script monitors presence of the files that have modification time older than given number of minutes.

The script monitors a given process and if the process runs longer than the
specified time it is marked as critical or optionally killed. If the kill
operation fails the process is also marked as critical.

This is useful to monitor long running processes that may get stuck. One needs
to have an idea about the expected run time of the process. This is not useful
for monitoring time critical processes. The check can only be used on processes
that have a singular instance, i.e. there can only be one entry in the process
table for the process with the given name.

The script monitors that the repositories given in a configuration file
/etc/rmt-utils/rmt_repository_config.json are enabled and that the directory
associated with that repository is present in the expected location.

A terraform provider that makes it easy to find the resources managed by SUSE inside of different public clouds

Watch the CI tests here: https://osinside.github.io/kiwi

2962 contributions in the last year
Mon                                                                                                          
Tue                                                                                                          
Wed                                                                                                          
Thu                                                                                                          
Fri                                                                                                          
Sat                                                                                                        
Sun                                                                                                        
Contributions on 2024-11-04
5 commits
4 requests created
openSUSE Build Service is sponsored by