Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package disomaster for openSUSE:Factory 
checked in at 2022-09-01 22:10:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/disomaster (Old)
 and      /work/SRC/openSUSE:Factory/.disomaster.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "disomaster"

Thu Sep  1 22:10:05 2022 rev:3 rq:1000238 version:5.0.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/disomaster/disomaster.changes    2021-06-02 
22:11:12.724124193 +0200
+++ /work/SRC/openSUSE:Factory/.disomaster.new.2083/disomaster.changes  
2022-09-01 22:10:56.540206621 +0200
@@ -1,0 +2,7 @@
+Sun Aug 28 11:54:08 UTC 2022 - Hillwood Yang <[email protected]>
+
+- Update version to 5.0.8
+  * impl 'dumpISO'
+  * Fix bugs
+
+-------------------------------------------------------------------

Old:
----
  disomaster-5.0.7.tar.gz

New:
----
  disomaster-5.0.8.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ disomaster.spec ++++++
--- /var/tmp/diff_new_pack.eO8Sqd/_old  2022-09-01 22:10:57.024207945 +0200
+++ /var/tmp/diff_new_pack.eO8Sqd/_new  2022-09-01 22:10:57.028207956 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package disomaster
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %define  sover  1
 
 Name:           disomaster
-Version:        5.0.7
+Version:        5.0.8
 Release:        0
 License:        GPL-3.0-or-later
 Summary:        A libisoburn wrapper

++++++ disomaster-5.0.7.tar.gz -> disomaster-5.0.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/disomaster-5.0.7/.github/workflows/backup-to-gitlab.yml 
new/disomaster-5.0.8/.github/workflows/backup-to-gitlab.yml
--- old/disomaster-5.0.7/.github/workflows/backup-to-gitlab.yml 1970-01-01 
01:00:00.000000000 +0100
+++ new/disomaster-5.0.8/.github/workflows/backup-to-gitlab.yml 2022-08-16 
10:23:54.000000000 +0200
@@ -0,0 +1,52 @@
+name: backup to gitlab
+on: [push]
+
+concurrency:
+  group: ${{ github.workflow }}
+  cancel-in-progress: true
+
+jobs:
+  backup-to-gitlab:
+    if: github.repository_owner == 'linuxdeepin'
+    name: backup-to-gitlab
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          repository: "linuxdeepin/jenkins-bridge-client"
+          path: jenkins-bridge-client
+
+      - name: Install Client
+        run: |
+          cd $GITHUB_WORKSPACE/jenkins-bridge-client
+          go build .
+          sudo install -Dvm755 jenkins-bridge-client -t /usr/bin/
+      - name: Trigger sync
+        id: generate-runid
+        run: |
+          echo "::set-output name=RUN_ID::$(jenkins-bridge-client -triggerSync 
-token '${{ secrets.BRIDGETOKEN }}')"
+      - name: Print log
+        run: |
+          jenkins-bridge-client -printlog -token "${{ secrets.BRIDGETOKEN }}" 
-runid "${{ steps.generate-runid.outputs.RUN_ID }}"
+
+  backup-to-gitee:
+    if: github.repository_owner == 'linuxdeepin'
+    runs-on: ubuntu-latest
+    steps:
+      - name: create-repo
+        run: |
+          repo=${{ github.event.repository.name }}
+          homepage="https://github.com/linuxdeepin/${repo}";
+          description="mirror of ${homepage}"
+          # remove '.' prefix
+          repo=${repo#"."}
+          curl -X POST --header 'Content-Type: application/json;charset=UTF-8' 
'https://gitee.com/api/v5/enterprises/linuxdeepin/repos' -d '{"private": 
1,"access_token":"${{ secrets.GITEE_SYNC_TOKEN 
}}","name":"'"$repo"'","description":"'"$description"'","homepage":"'"$homepage"'","has_issues":"false","has_wiki":"false","can_comment":"false"}'
 || true
+      - name: push
+        run: |
+          git clone --bare https://github.com/linuxdeepin/${{ 
github.event.repository.name }}.git .git
+          repo=${{ github.event.repository.name }}
+          # remove '.' prefix
+          repo=${repo#"."}
+          git remote set-url origin https://myml:${{ secrets.GITEE_SYNC_TOKEN 
}}@gitee.com/linuxdeepin/${repo}.git
+          git push -f --all --prune origin
+          git push --tags origin
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/disomaster-5.0.7/.github/workflows/call-build-deb.yml 
new/disomaster-5.0.8/.github/workflows/call-build-deb.yml
--- old/disomaster-5.0.7/.github/workflows/call-build-deb.yml   1970-01-01 
01:00:00.000000000 +0100
+++ new/disomaster-5.0.8/.github/workflows/call-build-deb.yml   2022-08-16 
10:23:54.000000000 +0200
@@ -0,0 +1,17 @@
+name: Call build-deb
+on:
+  pull_request_target:
+    paths-ignore:
+      - ".github/workflows/**"
+    types: [ opened, closed, synchronize ]
+
+concurrency:
+  group: ${{ github.workflow }}-pull/${{ github.event.number }}
+  cancel-in-progress: true
+
+jobs:
+  check_job:
+    if: github.event.action != 'closed' || github.event.pull_request.merged
+    uses: linuxdeepin/.github/.github/workflows/build-deb.yml@master
+    secrets:
+      BridgeToken: ${{ secrets.BridgeToken }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/disomaster-5.0.7/.github/workflows/call-chatOps.yml 
new/disomaster-5.0.8/.github/workflows/call-chatOps.yml
--- old/disomaster-5.0.7/.github/workflows/call-chatOps.yml     1970-01-01 
01:00:00.000000000 +0100
+++ new/disomaster-5.0.8/.github/workflows/call-chatOps.yml     2022-08-16 
10:23:54.000000000 +0200
@@ -0,0 +1,10 @@
+name: chatOps
+on:
+  issue_comment:
+    types: [created]
+
+jobs:
+  chatopt:
+    uses: linuxdeepin/.github/.github/workflows/chatOps.yml@master
+    secrets:
+      APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/disomaster-5.0.7/.github/workflows/call-clacheck.yml 
new/disomaster-5.0.8/.github/workflows/call-clacheck.yml
--- old/disomaster-5.0.7/.github/workflows/call-clacheck.yml    1970-01-01 
01:00:00.000000000 +0100
+++ new/disomaster-5.0.8/.github/workflows/call-clacheck.yml    2022-08-16 
10:23:54.000000000 +0200
@@ -0,0 +1,16 @@
+name: Call CLA check
+on:
+  issue_comment:
+    types: [created]
+  pull_request_target:
+    types: [opened, closed, synchronize]
+
+concurrency:
+  group: ${{ github.workflow }}-pull/${{ github.event.number }}
+  cancel-in-progress: true
+
+jobs:
+  clacheck:
+    uses: linuxdeepin/.github/.github/workflows/cla-check.yml@master
+    secrets:
+      APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/disomaster-5.0.7/.github/workflows/call-commitlint.yml 
new/disomaster-5.0.8/.github/workflows/call-commitlint.yml
--- old/disomaster-5.0.7/.github/workflows/call-commitlint.yml  1970-01-01 
01:00:00.000000000 +0100
+++ new/disomaster-5.0.8/.github/workflows/call-commitlint.yml  2022-08-16 
10:23:54.000000000 +0200
@@ -0,0 +1,11 @@
+name: Call commitlint
+on:
+  pull_request_target:
+
+concurrency:
+  group: ${{ github.workflow }}-pull/${{ github.event.number }}
+  cancel-in-progress: true
+
+jobs:
+  check_job:
+    uses: linuxdeepin/.github/.github/workflows/commitlint.yml@master
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/disomaster-5.0.7/.github/workflows/call-license-check.yml 
new/disomaster-5.0.8/.github/workflows/call-license-check.yml
--- old/disomaster-5.0.7/.github/workflows/call-license-check.yml       
1970-01-01 01:00:00.000000000 +0100
+++ new/disomaster-5.0.8/.github/workflows/call-license-check.yml       
2022-08-16 10:23:54.000000000 +0200
@@ -0,0 +1,16 @@
+name: Call License and README Check
+on:
+  pull_request_target:
+    types: [opened, synchronize, reopened]
+
+permissions:
+  pull-requests: write
+  contents: read
+
+concurrency:
+  group: ${{ github.workflow }}-pull/${{ github.event.number }}
+  cancel-in-progress: true
+
+jobs:
+  license-check:
+    uses: linuxdeepin/.github/.github/workflows/license-check.yml@master
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/disomaster-5.0.7/.github/workflows/cppcheck.yml 
new/disomaster-5.0.8/.github/workflows/cppcheck.yml
--- old/disomaster-5.0.7/.github/workflows/cppcheck.yml 1970-01-01 
01:00:00.000000000 +0100
+++ new/disomaster-5.0.8/.github/workflows/cppcheck.yml 2022-08-16 
10:23:54.000000000 +0200
@@ -0,0 +1,26 @@
+name: cppcheck
+on:
+  pull_request_target:
+    paths-ignore:
+      - ".github/workflows/**"
+
+concurrency:
+  group: ${{ github.workflow }}-pull/${{ github.event.number }}
+  cancel-in-progress: true
+
+jobs:
+  cppchceck:
+    name: cppcheck
+    runs-on: ubuntu-latest
+    steps:
+      - run: export
+      - uses: actions/checkout@v2
+        with:
+          ref: ${{ github.event.pull_request.head.sha }}
+          persist-credentials: false
+      - uses: linuxdeepin/action-cppcheck@main
+        with:
+          github_token: ${{ secrets.GITHUB_TOKEN }}
+          repository: ${{ github.repository }}
+          pull_request_id: ${{ github.event.pull_request.number }}
+          allow_approve: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/disomaster-5.0.7/archlinux/PKGBUILD 
new/disomaster-5.0.8/archlinux/PKGBUILD
--- old/disomaster-5.0.7/archlinux/PKGBUILD     1970-01-01 01:00:00.000000000 
+0100
+++ new/disomaster-5.0.8/archlinux/PKGBUILD     2022-08-16 10:23:54.000000000 
+0200
@@ -0,0 +1,32 @@
+# Maintainer: justforlxz <[email protected]>
+pkgname=disomaster-git
+pkgver=5.0.7.r2.g157dd8f
+pkgrel=1
+pkgdesc='Library to manipulate DISC burning.'
+arch=('x86_64' 'aarch64')
+url="https://github.com/linuxdeepin/disomaster";
+license=('GPL3')
+depends=('libisoburn')
+makedepends=('git' 'qt5-tools')
+groups=('deepin-git')
+provides=('disomaster')
+conflicts=('disomaster')
+source=('source.tar.gz')
+sha512sums=('SKIP')
+
+prepare() {
+    cd $deepin_source_name
+}
+
+build() {
+  cd $deepin_source_name
+
+  qmake-qt5 PREFIX=/usr
+  make
+}
+
+package() {
+  cd $deepin_source_name
+
+  make INSTALL_ROOT="$pkgdir" install
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/disomaster-5.0.7/libdisomaster/disomaster.cpp 
new/disomaster-5.0.8/libdisomaster/disomaster.cpp
--- old/disomaster-5.0.7/libdisomaster/disomaster.cpp   2020-12-08 
04:28:44.000000000 +0100
+++ new/disomaster-5.0.8/libdisomaster/disomaster.cpp   2022-08-16 
10:23:54.000000000 +0200
@@ -22,18 +22,18 @@
 #include "xorriso.h"
 #include <QRegularExpression>
 
-#define PCHAR(s) (char*)(s)
+#define PCHAR(s) (char *)(s)
 
-#define XORRISO_OPT(opt, x, ...) \
+#define XORRISO_OPT(opt, x, ...)                 \
     Xorriso_set_problem_status(x, PCHAR(""), 0); \
-    r = Xorriso_option_##opt(x, __VA_ARGS__); \
+    r = Xorriso_option_##opt(x, __VA_ARGS__);    \
     r = Xorriso_eval_problem_status(x, r, 0);
 
-#define JOBFAILED_IF(r, x) \
-    if (r <= 0) { \
-        Xorriso_option_end(x, 1); \
+#define JOBFAILED_IF(r, x)                              \
+    if (r <= 0) {                                       \
+        Xorriso_option_end(x, 1);                       \
         Q_EMIT jobStatusChanged(JobStatus::Failed, -1); \
-        return false; \
+        return false;                                   \
     }
 
 int XorrisoResultHandler(void *handle, char *text);
@@ -44,7 +44,8 @@
 class DISOMasterPrivate
 {
 private:
-    DISOMasterPrivate(DISOMaster *q): q_ptr(q) {}
+    DISOMasterPrivate(DISOMaster *q)
+        : q_ptr(q) {}
     XorrisO *xorriso;
     QHash<QUrl, QUrl> files;
     QHash<QString, DeviceProperty> dev;
@@ -71,9 +72,9 @@
  * return until the operation completes. Note the signal is emitted
  * from a separate thread (while the job is actually running).
  */
-DISOMaster::DISOMaster(QObject *parent):
-    QObject(parent),
-    d_ptr(new DISOMasterPrivate(this))
+DISOMaster::DISOMaster(QObject *parent)
+    : QObject(parent),
+      d_ptr(new DISOMasterPrivate(this))
 {
     Q_D(DISOMaster);
     int r = Xorriso_new(&d->xorriso, PCHAR("xorriso"), 0);
@@ -279,7 +280,7 @@
  * \param volId  volume name of the disc
  * \return       true on success, false on failure
  */
-bool DISOMaster::commit(const BurnOptions &opts, int speed/* = 0*/, QString 
volId/* = "ISOIMAGE"*/)
+bool DISOMaster::commit(const BurnOptions &opts, int speed /* = 0*/, QString 
volId /* = "ISOIMAGE"*/)
 {
     Q_D(DISOMaster);
     Q_EMIT jobStatusChanged(JobStatus::Stalled, 0);
@@ -309,11 +310,10 @@
 
     for (auto it = d->files.begin(); it != d->files.end(); ++it) {
         XORRISO_OPT(
-            map, d->xorriso,
-            it.key().toString().toUtf8().data(),
-            it.value().toString().toUtf8().data(),
-            0
-        );
+                map, d->xorriso,
+                it.key().toString().toUtf8().data(),
+                it.value().toString().toUtf8().data(),
+                0);
         JOBFAILED_IF(r, d->xorriso);
     }
 
@@ -326,7 +326,6 @@
     return true;
 }
 
-
 /*!
  * \brief Burn all staged files to the disc.
  * \param speed desired writing speed in kilobytes per second
@@ -367,11 +366,10 @@
 
     for (auto it = d->files.begin(); it != d->files.end(); ++it) {
         XORRISO_OPT(
-            map, d->xorriso,
-            it.key().toString().toUtf8().data(),
-            it.value().toString().toUtf8().data(),
-            0
-        );
+                map, d->xorriso,
+                it.key().toString().toUtf8().data(),
+                it.value().toString().toUtf8().data(),
+                0);
         JOBFAILED_IF(r, d->xorriso);
     }
 
@@ -466,13 +464,34 @@
 }
 
 /*!
- * \brief Dump the content of the disc to a file. (unimplemented)
+ * \brief Dump the content of the disc to a file
+ *  xorriso -outdev /dev/sr[?] -check_media use=outdev data_to=[path]
+ * \param isopath the image file to be dumped
+ * \return true on success, false on failure
  */
-void DISOMaster::dumpISO(const QUrl isopath)
+bool DISOMaster::dumpISO(const QUrl isopath)
 {
     Q_D(DISOMaster);
-    //use osirrox
-    //unimplemented
+    Q_EMIT jobStatusChanged(JobStatus::Running, 0);
+    d->xorrisomsg.clear();
+
+    Q_ASSERT(!isopath.isEmpty());
+    Q_ASSERT(isopath.isValid());
+
+    int r;
+    char **av = new char *[2];
+    int dummy = 0;
+    av[0] = strdup((QString("use=outdev")).toUtf8().data());
+    av[1] = strdup((QString("data_to=") + isopath.path()).toUtf8().data());
+    XORRISO_OPT(check_media, d->xorriso, 2, av, &dummy, 0);
+
+    for (int i = 0; i < 2; ++i)
+        free(av[i]);
+    delete[] av;
+
+    JOBFAILED_IF(r, d->xorriso);
+
+    return true;
 }
 
 /*!
@@ -511,7 +530,7 @@
     for (int i = 0; i < 6; ++i) {
         free(av[i]);
     }
-    delete []av;
+    delete[] av;
 
     return true;
 }
@@ -528,24 +547,24 @@
     char **av;
     Xorriso_sieve_get_result(xorriso, PCHAR("Media current:"), &ac, &av, 
&avail, 0);
     if (ac < 1) {
-           Xorriso__dispose_words(&ac, &av);
+        Xorriso__dispose_words(&ac, &av);
         return;
     }
     QString mt = av[0];
     const static QHash<QString, MediaType> typemap = {
-        {"CD-ROM",   MediaType::CD_ROM},
-        {"CD-R",     MediaType::CD_R},
-        {"CD-RW",    MediaType::CD_RW},
-        {"DVD-ROM",  MediaType::DVD_ROM},
-        {"DVD-R",    MediaType::DVD_R},
-        {"DVD-RW",   MediaType::DVD_RW},
-        {"DVD+R",    MediaType::DVD_PLUS_R},
-        {"DVD+R/DL", MediaType::DVD_PLUS_R_DL},
-        {"DVD-RAM",  MediaType::DVD_RAM},
-        {"DVD+RW",   MediaType::DVD_PLUS_RW},
-        {"BD-ROM",   MediaType::BD_ROM},
-        {"BD-R",     MediaType::BD_R},
-        {"BD-RE",    MediaType::BD_RE}
+        { "CD-ROM", MediaType::CD_ROM },
+        { "CD-R", MediaType::CD_R },
+        { "CD-RW", MediaType::CD_RW },
+        { "DVD-ROM", MediaType::DVD_ROM },
+        { "DVD-R", MediaType::DVD_R },
+        { "DVD-RW", MediaType::DVD_RW },
+        { "DVD+R", MediaType::DVD_PLUS_R },
+        { "DVD+R/DL", MediaType::DVD_PLUS_R_DL },
+        { "DVD-RAM", MediaType::DVD_RAM },
+        { "DVD+RW", MediaType::DVD_PLUS_RW },
+        { "BD-ROM", MediaType::BD_ROM },
+        { "BD-R", MediaType::BD_R },
+        { "BD-RE", MediaType::BD_RE }
     };
     mt = mt.left(mt.indexOf(' '));
     if (typemap.find(mt) != typemap.end()) {
@@ -554,7 +573,7 @@
         dev[curdev].media = MediaType::NoMedia;
     }
     Xorriso__dispose_words(&ac, &av);
-    
+
     Xorriso_sieve_get_result(xorriso, PCHAR("Media summary:"), &ac, &av, 
&avail, 0);
     if (ac == 4) {
         const QString units = "kmg";
@@ -634,7 +653,7 @@
     //check media
     r = QRegularExpression("([0-9]*) blocks read in ([0-9]*) seconds , 
([0-9.]*)x");
     m = r.match(msg);
-    if (m.hasMatch()) {
+    if (m.hasMatch() && dev[curdev].datablocks != 0) {
         double percentage = 100. * m.captured(1).toDouble() / 
dev[curdev].datablocks;
         Q_EMIT q->jobStatusChanged(DISOMaster::JobStatus::Running, percentage);
     }
@@ -649,8 +668,7 @@
     }
 
     //operation complete
-    if (msg.contains("Blanking done") ||
-        msg.contains(QRegularExpression("Writing to .* completed 
successfully."))) {
+    if (msg.contains("Blanking done") || 
msg.contains(QRegularExpression("Writing to .* completed successfully."))) {
         Q_EMIT q->jobStatusChanged(DISOMaster::JobStatus::Finished, 0);
     }
 }
@@ -659,7 +677,7 @@
 
 int XorrisoResultHandler(void *handle, char *text)
 {
-    ((DISOMasterNS::DISOMasterPrivate*)handle)->messageReceived(0, text);
+    ((DISOMasterNS::DISOMasterPrivate *)handle)->messageReceived(0, text);
     return 1;
 }
 int XorrisoInfoHandler(void *handle, char *text)
@@ -668,7 +686,7 @@
     if (strstr(text, "DEBUG : Concurrent message watcher")) {
         return 1;
     }
-    ((DISOMasterNS::DISOMasterPrivate*)handle)->messageReceived(1, text);
+    ((DISOMasterNS::DISOMasterPrivate *)handle)->messageReceived(1, text);
     return 1;
 }
 /*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/disomaster-5.0.7/libdisomaster/disomaster.h 
new/disomaster-5.0.8/libdisomaster/disomaster.h
--- old/disomaster-5.0.7/libdisomaster/disomaster.h     2020-12-08 
04:28:44.000000000 +0100
+++ new/disomaster-5.0.8/libdisomaster/disomaster.h     2022-08-16 
10:23:54.000000000 +0200
@@ -114,8 +114,7 @@
     Q_DECL_DEPRECATED_X("Suggest use commit with BurnOptions instead") bool 
commit(int speed = 0, bool closeSession = false, QString volId = "ISOIMAGE");
     bool erase();
     bool checkmedia(double *qgood, double *qslow, double *qbad);
-
-    void dumpISO(const QUrl isopath);
+    bool dumpISO(const QUrl isopath);
     bool writeISO(const QUrl isopath, int speed = 0);
 
 Q_SIGNALS:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/disomaster-5.0.7/tests/testdisomaster.cpp 
new/disomaster-5.0.8/tests/testdisomaster.cpp
--- old/disomaster-5.0.7/tests/testdisomaster.cpp       2020-12-08 
04:28:44.000000000 +0100
+++ new/disomaster-5.0.8/tests/testdisomaster.cpp       2022-08-16 
10:23:54.000000000 +0200
@@ -150,4 +150,27 @@
     delete x;
 }
 
+void TestDISOMaster::test_dumpISO()
+{
+    Q_ASSUME(qEnvironmentVariableIsSet("DISOMASTERTEST_DEVICE"));
+    Q_ASSUME(qEnvironmentVariableIsSet("DISOMASTERTEST_DEVICE"));
+    const QString dev = QString(qgetenv("DISOMASTERTEST_DEVICE"));
+    const QString iso = QString(qgetenv("DISOMASTERTEST_ISOFILE"));
+
+    DISOMaster *x = new DISOMaster;
+    TestSignalReceiver *r = new TestSignalReceiver(x, this);
+    connect(x, &DISOMaster::jobStatusChanged, r, 
&TestSignalReceiver::updateJobStatus);
+
+    QFuture<void> f = QtConcurrent::run([=] {
+        x->acquireDevice(dev);
+        x->dumpISO(QUrl::fromLocalFile(iso));
+        x->releaseDevice();
+    });
+
+    QTRY_VERIFY_WITH_TIMEOUT(st == DISOMaster::JobStatus::Finished, 300000);
+    f.waitForFinished();
+    delete r;
+    delete x;
+}
+
 QTEST_MAIN(TestDISOMaster)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/disomaster-5.0.7/tests/testdisomaster.h 
new/disomaster-5.0.8/tests/testdisomaster.h
--- old/disomaster-5.0.7/tests/testdisomaster.h 2020-12-08 04:28:44.000000000 
+0100
+++ new/disomaster-5.0.8/tests/testdisomaster.h 2022-08-16 10:23:54.000000000 
+0200
@@ -53,6 +53,7 @@
     void test_erase();
     void test_isoWrite();
     void test_checkMedia();
+    void test_dumpISO();
 
 };
 

Reply via email to