1
0
Fork 0

Try to fix tests

This commit is contained in:
Chocobozzz 2022-10-10 11:31:01 +02:00
parent 63fa260a81
commit 34aa316f58
No known key found for this signature in database
GPG key ID: 583A612D890159BE
3 changed files with 45 additions and 11 deletions

View file

@ -58,13 +58,16 @@ async function testVideoResolutions (options: {
: originServer.url + '/static/streaming-playlists/hls' : originServer.url + '/static/streaming-playlists/hls'
if (objectStorage) { if (objectStorage) {
// Playlist file upload await originServer.live.waitUntilSegmentUpload({ playlistNumber: i, segment: segmentNum })
await wait(500) await wait(1000)
expect(hlsPlaylist.segmentsSha256Url).to.contain(ObjectStorageCommand.getPlaylistBaseUrl()) expect(hlsPlaylist.segmentsSha256Url).to.contain(ObjectStorageCommand.getPlaylistBaseUrl())
} }
const subPlaylist = await originServer.streamingPlaylists.get({ url: `${baseUrl}/${video.uuid}/${i}.m3u8` }) const subPlaylist = await originServer.streamingPlaylists.get({
url: `${baseUrl}/${video.uuid}/${i}.m3u8`,
withRetry: objectStorage // With object storage, the request may fail because of inconsistent data in S3
})
expect(subPlaylist).to.contain(segmentName) expect(subPlaylist).to.contain(segmentName)

View file

@ -172,6 +172,17 @@ export class LiveCommand extends AbstractCommand {
return this.server.servers.waitUntilLog(`${videoUUID}/${segmentName}`, totalSessions * 2, false) return this.server.servers.waitUntilLog(`${videoUUID}/${segmentName}`, totalSessions * 2, false)
} }
waitUntilSegmentUpload (options: OverrideCommandOptions & {
playlistNumber: number
segment: number
totalSessions?: number
}) {
const { playlistNumber, segment, totalSessions = 1 } = options
const segmentName = `${playlistNumber}-00000${segment}.ts`
return this.server.servers.waitUntilLog(`${segmentName} in bucket `, totalSessions * 2, false)
}
async waitUntilReplacedByReplay (options: OverrideCommandOptions & { async waitUntilReplacedByReplay (options: OverrideCommandOptions & {
videoId: number | string videoId: number | string
}) { }) {

View file

@ -1,19 +1,39 @@
import { wait } from '@shared/core-utils'
import { HttpStatusCode } from '@shared/models' import { HttpStatusCode } from '@shared/models'
import { unwrapBody, unwrapTextOrDecode, unwrapBodyOrDecodeToJSON } from '../requests' import { unwrapBody, unwrapBodyOrDecodeToJSON, unwrapTextOrDecode } from '../requests'
import { AbstractCommand, OverrideCommandOptions } from '../shared' import { AbstractCommand, OverrideCommandOptions } from '../shared'
export class StreamingPlaylistsCommand extends AbstractCommand { export class StreamingPlaylistsCommand extends AbstractCommand {
get (options: OverrideCommandOptions & { async get (options: OverrideCommandOptions & {
url: string url: string
withRetry?: boolean // default false
currentRetry?: number
}) { }) {
return unwrapTextOrDecode(this.getRawRequest({ const { withRetry, currentRetry = 1 } = options
...options,
url: options.url, try {
implicitToken: false, const result = await unwrapTextOrDecode(this.getRawRequest({
defaultExpectedStatus: HttpStatusCode.OK_200 ...options,
}))
url: options.url,
implicitToken: false,
defaultExpectedStatus: HttpStatusCode.OK_200
}))
return result
} catch (err) {
if (!withRetry || currentRetry > 5) throw err
await wait(100)
return this.get({
...options,
withRetry,
currentRetry: currentRetry + 1
})
}
} }
getFragmentedSegment (options: OverrideCommandOptions & { getFragmentedSegment (options: OverrideCommandOptions & {