11cb0ef41Sopenharmony_ci// Flags: --expose-internals
21cb0ef41Sopenharmony_ci'use strict';
31cb0ef41Sopenharmony_cirequire('../common');
41cb0ef41Sopenharmony_ciconst assert = require('assert');
51cb0ef41Sopenharmony_ciconst { versionCheck } = require('internal/v8_prof_polyfill');
61cb0ef41Sopenharmony_ci
71cb0ef41Sopenharmony_ciassert.strictEqual(versionCheck('v8-version,1,2,3,4,0', '1.2.3'), undefined);
81cb0ef41Sopenharmony_ciassert.strictEqual(versionCheck('v8-version,1,2,3,4,0', '1.2.3.3'), undefined);
91cb0ef41Sopenharmony_ciassert.strictEqual(versionCheck('v8-version,1,2,3,4,0', '1.2.3.4'), undefined);
101cb0ef41Sopenharmony_ciassert.strictEqual(versionCheck('v8-version,1,2,3,4,0', '1.2.3.5'), undefined);
111cb0ef41Sopenharmony_ciassert.strictEqual(versionCheck('v8-version,1,2,3,4,-node.1,0', '1.2.3'),
121cb0ef41Sopenharmony_ci                   undefined);
131cb0ef41Sopenharmony_ciassert.strictEqual(versionCheck('v8-version,1,2,3,4,-node.1,0', '1.2.3.4'),
141cb0ef41Sopenharmony_ci                   undefined);
151cb0ef41Sopenharmony_ciassert.strictEqual(versionCheck('v8-version,1,2,3,4,-node.1,0', '1.2.3-node.1'),
161cb0ef41Sopenharmony_ci                   undefined);
171cb0ef41Sopenharmony_ciassert.strictEqual(versionCheck('v8-version,1,2,3,4,-node.1,0', '1.2.3-node.2'),
181cb0ef41Sopenharmony_ci                   undefined);
191cb0ef41Sopenharmony_ciassert.strictEqual(
201cb0ef41Sopenharmony_ci  versionCheck('v8-version,1,2,3,4,-node.1,0', '1.2.3.4-node.2'),
211cb0ef41Sopenharmony_ci  undefined);
221cb0ef41Sopenharmony_ci
231cb0ef41Sopenharmony_ci{
241cb0ef41Sopenharmony_ci  const expected = 'Unable to read v8-version from log file.';
251cb0ef41Sopenharmony_ci  assert.strictEqual(versionCheck('faux', '1.2.3'), expected);
261cb0ef41Sopenharmony_ci  assert.strictEqual(versionCheck('v8-version', '1.2.3'), expected);
271cb0ef41Sopenharmony_ci  assert.strictEqual(versionCheck('v8-version,1', '1.2.3'), expected);
281cb0ef41Sopenharmony_ci  assert.strictEqual(versionCheck('v8-version,1,2', '1.2.3'), expected);
291cb0ef41Sopenharmony_ci  assert.strictEqual(versionCheck('v8-version,1,2,3', '1.2.3'), expected);
301cb0ef41Sopenharmony_ci  assert.strictEqual(versionCheck('v8-version,1,2,3,4', '1.2.3'), expected);
311cb0ef41Sopenharmony_ci  assert.strictEqual(versionCheck('v8-version,1,2,3,4,5,6,7', '1.2.3'),
321cb0ef41Sopenharmony_ci                     expected);
331cb0ef41Sopenharmony_ci}
341cb0ef41Sopenharmony_ci
351cb0ef41Sopenharmony_ci{
361cb0ef41Sopenharmony_ci  const expected = 'Testing v8 version different from logging version';
371cb0ef41Sopenharmony_ci  assert.strictEqual(versionCheck('v8-version,4,3,2,1,0', '1.2.3'), expected);
381cb0ef41Sopenharmony_ci  assert.strictEqual(versionCheck('v8-version,4,3,2,1,0', '1.2.3.4'), expected);
391cb0ef41Sopenharmony_ci  assert.strictEqual(versionCheck('v8-version,4,3,2,1,0', '4.3.1.1'), expected);
401cb0ef41Sopenharmony_ci  assert.strictEqual(versionCheck('v8-version,4,3,2,1,0', '4.3.3.1'), expected);
411cb0ef41Sopenharmony_ci}
42