]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Try to improve redundancy tests
authorChocobozzz <me@florianbigard.com>
Tue, 2 Oct 2018 07:04:19 +0000 (09:04 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 2 Oct 2018 07:04:19 +0000 (09:04 +0200)
server/lib/activitypub/videos.ts
server/lib/schedulers/videos-redundancy-scheduler.ts
server/tests/api/server/redundancy.ts
server/tests/utils/server/servers.ts

index cd1bc4e063bd9fcebac960d10515aeb8f1e71ad7..54cea542f37b9e29aa69c287ffe54f0ed6c1ef77 100644 (file)
@@ -396,6 +396,8 @@ async function refreshVideoIfNeeded (options: {
     }
     await retryTransactionWrapper(updateVideoFromAP, updateOptions)
     await syncVideoExternalAttributes(video, videoObject, options.syncParam)
+
+    return video
   } catch (err) {
     logger.warn('Cannot refresh video %s.', options.video.url, { err })
     return video
index 0b1ae76ff853d74c06f5a6844e74275083d40f71..607bdf67c529f7540370d129cbf2042796fa331d 100644 (file)
@@ -157,6 +157,8 @@ export class VideosRedundancyScheduler extends AbstractScheduler {
       createdModel.VideoFile = file
 
       await sendCreateCacheFile(serverActor, createdModel)
+
+      logger.info('Duplicated %s - %d -> %s.', video.url, file.resolution, createdModel.url)
     }
   }
 
index e1709891d7de49adaae37f534d2f1a29b969005c..fcf1eacd3c2d2d7b4f789946c365f132751f4f5f 100644 (file)
@@ -15,7 +15,8 @@ import {
   setAccessTokensToServers, unfollow,
   uploadVideo,
   viewVideo,
-  wait
+  wait,
+  waitUntilLog
 } from '../../utils'
 import { waitJobs } from '../../utils/server/jobs'
 import * as magnetUtil from 'magnet-uri'
@@ -225,7 +226,7 @@ describe('Test videos redundancy', function () {
       this.timeout(40000)
 
       await waitJobs(servers)
-      await wait(15000)
+      await waitUntilLog(servers[0], 'Duplicated ', 4)
       await waitJobs(servers)
 
       await check2Webseeds(strategy)
@@ -270,7 +271,7 @@ describe('Test videos redundancy', function () {
       this.timeout(40000)
 
       await waitJobs(servers)
-      await wait(15000)
+      await waitUntilLog(servers[0], 'Duplicated ', 4)
       await waitJobs(servers)
 
       await check2Webseeds(strategy)
@@ -336,7 +337,7 @@ describe('Test videos redundancy', function () {
       this.timeout(40000)
 
       await waitJobs(servers)
-      await wait(15000)
+      await waitUntilLog(servers[0], 'Duplicated ', 4)
       await waitJobs(servers)
 
       await check2Webseeds(strategy)
@@ -423,7 +424,7 @@ describe('Test videos redundancy', function () {
       await enableRedundancyOnServer1()
 
       await waitJobs(servers)
-      await wait(5000)
+      await waitUntilLog(servers[0], 'Duplicated ', 4)
       await waitJobs(servers)
 
       await check2Webseeds(strategy)
@@ -434,15 +435,21 @@ describe('Test videos redundancy', function () {
     })
 
     it('Should cache video 2 webseed on the first video', async function () {
-      this.timeout(40000)
-      this.retries(3)
+      this.timeout(50000)
 
       await waitJobs(servers)
 
       await wait(7000)
 
-      await check1WebSeed(strategy, video1Server2UUID)
-      await check2Webseeds(strategy, video2Server2UUID)
+      try {
+        await check1WebSeed(strategy, video1Server2UUID)
+        await check2Webseeds(strategy, video2Server2UUID)
+      } catch {
+        await wait(7000)
+
+        await check1WebSeed(strategy, video1Server2UUID)
+        await check2Webseeds(strategy, video2Server2UUID)
+      }
     })
 
     after(function () {
index fbfc83ca1f35427e32f8452cd27f89691a3d368f..3c946db273d6014bb90c790c9c6d193b79b8143d 100644 (file)
@@ -1,5 +1,7 @@
 import { ChildProcess, exec, fork } from 'child_process'
 import { join } from 'path'
+import { root, wait } from '../miscs/miscs'
+import { readFile } from 'fs-extra'
 
 interface ServerInfo {
   app: ChildProcess,
@@ -157,6 +159,19 @@ function killallServers (servers: ServerInfo[]) {
   }
 }
 
+async function waitUntilLog (server: ServerInfo, str: string, count = 1) {
+  const logfile = join(root(), 'test' + server.serverNumber, 'logs/peertube.log')
+
+  while (true) {
+    const buf = await readFile(logfile)
+
+    const matches = buf.toString().match(new RegExp(str, 'g'))
+    if (matches && matches.length === count) return
+
+    await wait(1000)
+  }
+}
+
 // ---------------------------------------------------------------------------
 
 export {
@@ -165,5 +180,6 @@ export {
   flushTests,
   runServer,
   killallServers,
-  reRunServer
+  reRunServer,
+  waitUntilLog
 }