* [FFmpeg-devel] [PATCH 1/2] lavu/tests/cpu: stop processing the thread count
@ 2023-06-23 14:41 Anton Khirnov
2023-06-23 14:41 ` [FFmpeg-devel] [PATCH 2/2] tests/fate-run: add testing with a random number of threads Anton Khirnov
0 siblings, 1 reply; 3+ messages in thread
From: Anton Khirnov @ 2023-06-23 14:41 UTC (permalink / raw)
To: ffmpeg-devel
Just print it as it is.
Needed by the following commit.
---
libavutil/tests/cpu.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/libavutil/tests/cpu.c b/libavutil/tests/cpu.c
index a52637339d..200f20388a 100644
--- a/libavutil/tests/cpu.c
+++ b/libavutil/tests/cpu.c
@@ -106,7 +106,7 @@ int main(int argc, char **argv)
int cpu_flags_raw = av_get_cpu_flags();
int cpu_flags_eff;
int cpu_count = av_cpu_count();
- char threads[5] = "auto";
+ const char *threads = "auto";
int i;
for(i = 0; cpu_flag_tab[i].flag; i++) {
@@ -136,11 +136,7 @@ int main(int argc, char **argv)
}
case 't':
{
- int len = av_strlcpy(threads, optarg, sizeof(threads));
- if (len >= sizeof(threads)) {
- fprintf(stderr, "Invalid thread count '%s'\n", optarg);
- return 2;
- }
+ threads = optarg;
}
}
}
--
2.40.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 3+ messages in thread
* [FFmpeg-devel] [PATCH 2/2] tests/fate-run: add testing with a random number of threads
2023-06-23 14:41 [FFmpeg-devel] [PATCH 1/2] lavu/tests/cpu: stop processing the thread count Anton Khirnov
@ 2023-06-23 14:41 ` Anton Khirnov
2023-07-07 10:42 ` [FFmpeg-devel] [PATCH] " Anton Khirnov
0 siblings, 1 reply; 3+ messages in thread
From: Anton Khirnov @ 2023-06-23 14:41 UTC (permalink / raw)
To: ffmpeg-devel
Useful for discovering bugs that depend on a specific thread count.
Uses a simple PRNG copied from random() from libavutil/eval.c
Use like THREADS=randomX for a random thread count from 1 to X, with
X=16 when not specified.
---
doc/fate.texi | 5 +++++
tests/fate-run.sh | 9 +++++++++
2 files changed, 14 insertions(+)
diff --git a/doc/fate.texi b/doc/fate.texi
index 8450856015..13aea7a21f 100644
--- a/doc/fate.texi
+++ b/doc/fate.texi
@@ -223,6 +223,11 @@ meaning only while running the regression tests.
Specify how many threads to use while running regression tests, it is
quite useful to detect thread-related regressions.
+This variable may be set to the string "random", optionally followed by a
+number, like "random99", This will cause each test to use a random number of
+threads. If a number is specified, it is used as a maximum number of threads,
+otherwise 16 is the maximum.
+
@item THREAD_TYPE
Specify which threading strategy test, either @samp{slice} or @samp{frame},
by default @samp{slice+frame}
diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index e12279e4cf..55c579f84e 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -33,6 +33,15 @@ errfile="${outdir}/${test}.err"
cmpfile="${outdir}/${test}.diff"
repfile="${outdir}/${test}.rep"
+case $threads in
+ random*)
+ threads_max=${threads#random}
+ [ -z "$threads_max" ] && threads_max=16
+ threads="mod(time(0)*1664525+1013904223,$threads_max)+1"
+ ;;
+esac
+
+
target_path(){
test ${1} = ${1#/} && p=${target_path}/
echo ${p}${1}
--
2.40.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 3+ messages in thread
* [FFmpeg-devel] [PATCH] tests/fate-run: add testing with a random number of threads
2023-06-23 14:41 ` [FFmpeg-devel] [PATCH 2/2] tests/fate-run: add testing with a random number of threads Anton Khirnov
@ 2023-07-07 10:42 ` Anton Khirnov
0 siblings, 0 replies; 3+ messages in thread
From: Anton Khirnov @ 2023-07-07 10:42 UTC (permalink / raw)
To: ffmpeg-devel
Useful for discovering bugs that depend on a specific thread count.
Use like THREADS=randomX for a random thread count from 1 to X, with
X=16 when not specified.
---
Now using the awk rand() function, also used in configure.
The thread count can now be written into the errfile on test failure.
---
doc/fate.texi | 8 ++++++++
tests/fate-run.sh | 10 ++++++++++
2 files changed, 18 insertions(+)
diff --git a/doc/fate.texi b/doc/fate.texi
index 8450856015..2fa8c34c2d 100644
--- a/doc/fate.texi
+++ b/doc/fate.texi
@@ -223,6 +223,14 @@ meaning only while running the regression tests.
Specify how many threads to use while running regression tests, it is
quite useful to detect thread-related regressions.
+This variable may be set to the string "random", optionally followed by a
+number, like "random99", This will cause each test to use a random number of
+threads. If a number is specified, it is used as a maximum number of threads,
+otherwise 16 is the maximum.
+
+In case a test fails, the thread count used for it will be written into the
+errfile.
+
@item THREAD_TYPE
Specify which threading strategy test, either @samp{slice} or @samp{frame},
by default @samp{slice+frame}
diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index e12279e4cf..5a71ac001e 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -33,6 +33,15 @@ errfile="${outdir}/${test}.err"
cmpfile="${outdir}/${test}.diff"
repfile="${outdir}/${test}.rep"
+case $threads in
+ random*)
+ threads_max=${threads#random}
+ [ -z "$threads_max" ] && threads_max=16
+ threads=$(awk "BEGIN { print 1+int(rand() * $threads_max) }" < /dev/null)
+ ;;
+esac
+
+
target_path(){
test ${1} = ${1#/} && p=${target_path}/
echo ${p}${1}
@@ -630,6 +639,7 @@ fi
if [ $err -eq 0 ] && test $report_type = "standard" ; then
unset cmpo erro
else
+ echo "threads=$threads" >> "$errfile"
cmpo="$($base64 <$cmpfile)"
erro="$($base64 <$errfile)"
fi
--
2.40.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-07-07 10:43 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-23 14:41 [FFmpeg-devel] [PATCH 1/2] lavu/tests/cpu: stop processing the thread count Anton Khirnov
2023-06-23 14:41 ` [FFmpeg-devel] [PATCH 2/2] tests/fate-run: add testing with a random number of threads Anton Khirnov
2023-07-07 10:42 ` [FFmpeg-devel] [PATCH] " Anton Khirnov
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git