summaryrefslogtreecommitdiffstats
path: root/upstream/mageia-cauldron/man3pm/Test2::Util.3pm
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
commitfc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch)
treece1e3bce06471410239a6f41282e328770aa404a /upstream/mageia-cauldron/man3pm/Test2::Util.3pm
parentInitial commit. (diff)
downloadmanpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz
manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'upstream/mageia-cauldron/man3pm/Test2::Util.3pm')
-rw-r--r--upstream/mageia-cauldron/man3pm/Test2::Util.3pm200
1 files changed, 200 insertions, 0 deletions
diff --git a/upstream/mageia-cauldron/man3pm/Test2::Util.3pm b/upstream/mageia-cauldron/man3pm/Test2::Util.3pm
new file mode 100644
index 00000000..3f4c3da7
--- /dev/null
+++ b/upstream/mageia-cauldron/man3pm/Test2::Util.3pm
@@ -0,0 +1,200 @@
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+. if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{\
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\" ========================================================================
+.\"
+.IX Title "Test2::Util 3pm"
+.TH Test2::Util 3pm 2023-11-28 "perl v5.38.2" "Perl Programmers Reference Guide"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH NAME
+Test2::Util \- Tools used by Test2 and friends.
+.SH DESCRIPTION
+.IX Header "DESCRIPTION"
+Collection of tools used by Test2 and friends.
+.SH EXPORTS
+.IX Header "EXPORTS"
+All exports are optional. You must specify subs to import.
+.ie n .IP "($success, $error) = try { ... }" 4
+.el .IP "($success, \f(CW$error\fR) = try { ... }" 4
+.IX Item "($success, $error) = try { ... }"
+Eval the codeblock, return success or failure, and the error message. This code
+protects $@ and $!, they will be restored by the end of the run. This code also
+temporarily blocks \f(CW$SIG\fR{DIE} handlers.
+.IP "protect { ... }" 4
+.IX Item "protect { ... }"
+Similar to try, except that it does not catch exceptions. The idea here is to
+protect $@ and $! from changes. $@ and $! will be restored to whatever they
+were before the run so long as it is successful. If the run fails $! will still
+be restored, but $@ will contain the exception being thrown.
+.IP CAN_FORK 4
+.IX Item "CAN_FORK"
+True if this system is capable of true or pseudo-fork.
+.IP CAN_REALLY_FORK 4
+.IX Item "CAN_REALLY_FORK"
+True if the system can really fork. This will be false for systems where fork
+is emulated.
+.IP CAN_THREAD 4
+.IX Item "CAN_THREAD"
+True if this system is capable of using threads.
+.IP USE_THREADS 4
+.IX Item "USE_THREADS"
+Returns true if threads are enabled, false if they are not.
+.IP get_tid 4
+.IX Item "get_tid"
+This will return the id of the current thread when threads are enabled,
+otherwise it returns 0.
+.ie n .IP "my $file = pkg_to_file($package)" 4
+.el .IP "my \f(CW$file\fR = pkg_to_file($package)" 4
+.IX Item "my $file = pkg_to_file($package)"
+Convert a package name to a filename.
+.ie n .IP "$string = \fBipc_separator()\fR" 4
+.el .IP "\f(CW$string\fR = \fBipc_separator()\fR" 4
+.IX Item "$string = ipc_separator()"
+Get the IPC separator. Currently this is always the string \f(CW\*(Aq~\*(Aq\fR.
+.ie n .IP "$string = \fBgen_uid()\fR" 4
+.el .IP "\f(CW$string\fR = \fBgen_uid()\fR" 4
+.IX Item "$string = gen_uid()"
+Generate a unique id (NOT A UUID). This will typically be the process id, the
+thread id, the time, and an incrementing integer all joined with the
+\&\f(CWipc_separator()\fR.
+.Sp
+These ID's are unique enough for most purposes. For identical ids to be
+generated you must have 2 processes with the same PID generate IDs at the same
+time with the same current state of the incrementing integer. This is a
+perfectly reasonable thing to expect to happen across multiple machines, but is
+quite unlikely to happen on one machine.
+.Sp
+This can fail to be unique if a process generates an id, calls exec, and does
+it again after the exec and it all happens in less than a second. It can also
+happen if the systems process id's cycle in less than a second allowing 2
+different programs that use this generator to run with the same PID in less
+than a second. Both these cases are sufficiently unlikely. If you need
+universally unique ids, or ids that are unique in these conditions, look at
+Data::UUID.
+.ie n .IP "($ok, $err) = do_rename($old_name, $new_name)" 4
+.el .IP "($ok, \f(CW$err\fR) = do_rename($old_name, \f(CW$new_name\fR)" 4
+.IX Item "($ok, $err) = do_rename($old_name, $new_name)"
+Rename a file, this wraps \f(CWrename()\fR in a way that makes it more reliable
+cross-platform when trying to rename files you recently altered.
+.ie n .IP "($ok, $err) = do_unlink($filename)" 4
+.el .IP "($ok, \f(CW$err\fR) = do_unlink($filename)" 4
+.IX Item "($ok, $err) = do_unlink($filename)"
+Unlink a file, this wraps \f(CWunlink()\fR in a way that makes it more reliable
+cross-platform when trying to unlink files you recently altered.
+.ie n .IP "($ok, $err) = try_sig_mask { ... }" 4
+.el .IP "($ok, \f(CW$err\fR) = try_sig_mask { ... }" 4
+.IX Item "($ok, $err) = try_sig_mask { ... }"
+Complete an action with several signals masked, they will be unmasked at the
+end allowing any signals that were intercepted to get handled.
+.Sp
+This is primarily used when you need to make several actions atomic (against
+some signals anyway).
+.Sp
+Signals that are intercepted:
+.RS 4
+.IP SIGINT 4
+.IX Item "SIGINT"
+.PD 0
+.IP SIGALRM 4
+.IX Item "SIGALRM"
+.IP SIGHUP 4
+.IX Item "SIGHUP"
+.IP SIGTERM 4
+.IX Item "SIGTERM"
+.IP SIGUSR1 4
+.IX Item "SIGUSR1"
+.IP SIGUSR2 4
+.IX Item "SIGUSR2"
+.RE
+.RS 4
+.RE
+.PD
+.SH "NOTES && CAVEATS"
+.IX Header "NOTES && CAVEATS"
+.IP 5.10.0 4
+.IX Item "5.10.0"
+Perl 5.10.0 has a bug when compiled with newer gcc versions. This bug causes a
+segfault whenever a new thread is launched. Test2 will attempt to detect
+this, and note that the system is not capable of forking when it is detected.
+.IP Devel::Cover 4
+.IX Item "Devel::Cover"
+Devel::Cover does not support threads. CAN_THREAD will return false if
+Devel::Cover is loaded before the check is first run.
+.SH SOURCE
+.IX Header "SOURCE"
+The source code repository for Test2 can be found at
+\&\fIhttp://github.com/Test\-More/test\-more/\fR.
+.SH MAINTAINERS
+.IX Header "MAINTAINERS"
+.IP "Chad Granum <exodist@cpan.org>" 4
+.IX Item "Chad Granum <exodist@cpan.org>"
+.SH AUTHORS
+.IX Header "AUTHORS"
+.PD 0
+.IP "Chad Granum <exodist@cpan.org>" 4
+.IX Item "Chad Granum <exodist@cpan.org>"
+.IP "Kent Fredric <kentnl@cpan.org>" 4
+.IX Item "Kent Fredric <kentnl@cpan.org>"
+.PD
+.SH COPYRIGHT
+.IX Header "COPYRIGHT"
+Copyright 2020 Chad Granum <exodist@cpan.org>.
+.PP
+This program is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself.
+.PP
+See \fIhttp://dev.perl.org/licenses/\fR