Пример #1
0
        public async Task Engine_With_Multiple_Compiler_And_Streaming_Mode_Should_Match_Patterns()
        {
            var loggerProvider = new XunitLoggerProvider(_testOutputHelper);
            var engineBuilder  = new EngineBuilder();

            engineBuilder.WithLogger(loggerProvider.CreateLogger("Hyperscan"));
            engineBuilder.WithDatabase(() => new Database());
            engineBuilder.WithCompiler(() => new MultipleCompiler(new List <Expression>
            {
                new Expression("foo(?i)bar(?-i)baz", ExpressionFlag.HsFlagSomLeftmost),
                new Expression("foo", ExpressionFlag.HsFlagSomLeftmost),
                new Expression("foo(?i)bar", ExpressionFlag.HsFlagSomLeftmost)
            }, CompilerMode.HsModeStream | CompilerMode.HsModeSomHorizonLarge));
            await using var engine = engineBuilder.Build();
            var observer = new TestScheduler().CreateObserver <Match>();

            using var onMatch = engine.OnMatch.Subscribe(observer);
            await engine.ScanAsync("fo", CancellationToken.None);

            await engine.ScanAsync("o", CancellationToken.None);

            await engine.ScanAsync("fo", CancellationToken.None);

            await engine.ScanAsync("o", CancellationToken.None);

            await engine.ScanAsync("barbazbaz", CancellationToken.None);

            await Task.Delay(100);

            observer.Messages.Count.Should().Be(4);
            observer.Messages.Should().Contain(message => message.Value.Value.FullMatch == "foo");
            observer.Messages.Should().Contain(message => message.Value.Value.FullMatch == "foobar");
            observer.Messages.Should().Contain(message => message.Value.Value.FullMatch == "foobarbaz");
        }
Пример #2
0
 public CatalogInvalidatorTest(ITestOutputHelper helper)
 {
     logProvider = new XunitLoggerProvider(helper);
     logger      = logProvider.CreateLogger <CatalogInvalidator>("CatalogInvalidatorTest");
     config      = new CacheOptions();
     store       = new Mock <ICatalogScanStore>(MockBehavior.Strict);
     reader      = new Mock <ICatalogReader>(MockBehavior.Strict);
 }
Пример #3
0
        public FighterTests(ITestOutputHelper output, RunThisTestFixture fixture)
        {
            _fixture   = fixture;
            _output    = output;
            _directory = fixture.Provider.GetRequiredService <IInvokerDirectory>();

            XunitLoggerProvider.PlugOutput(output);
        }
Пример #4
0
        public ModelBinderBaseTests(ITestOutputHelper output)
        {
            var provider = new XunitLoggerProvider(output, entry => logEntries.Add(entry));

            loggerFactory = LoggerFactory.Create(logging =>
            {
                logging.AddFilter(level => true);
                logging.AddProvider(provider);
            });
        }
Пример #5
0
        public async Task Engine_Should_Have_Valid_Version()
        {
            var loggerProvider = new XunitLoggerProvider(_testOutputHelper);
            var engineBuilder  = new EngineBuilder();

            engineBuilder.WithLogger(loggerProvider.CreateLogger("Hyperscan"));
            engineBuilder.WithDatabase(() => new Database());
            engineBuilder.WithCompiler(() => new SimpleCompiler(new Expression("", ExpressionFlag.HsFlagAllowempty), CompilerMode.HsModeBlock));
            await using var engine = engineBuilder.Build();
            engine.Version.Should().NotBeNullOrEmpty();
        }
Пример #6
0
        public async Task Platform_Should_Be_Valid()
        {
            var loggerProvider = new XunitLoggerProvider(_testOutputHelper);
            var engineBuilder  = new EngineBuilder();

            engineBuilder.WithLogger(loggerProvider.CreateLogger("Hyperscan"));
            engineBuilder.WithDatabase(() => new Database());
            engineBuilder.WithCompiler(() => new SimpleCompiler(new Expression("", ExpressionFlag.HsFlagAllowempty), CompilerMode.HsModeBlock));
            await using var engine = engineBuilder.Build();
            engine.PlatformInfo.Should().NotBeNull();
            engine.PlatformInfo.IsPlatformValid.Should().BeTrue();
        }
Пример #7
0
        public async Task Logger_Should_Log_Traces()
        {
            var loggerProvider = new XunitLoggerProvider(_testOutputHelper);
            var engineBuilder  = new EngineBuilder();

            engineBuilder.WithLogger(loggerProvider.CreateLogger("Hyperscan"));
            engineBuilder.WithDatabase(() => new Database());
            engineBuilder.WithCompiler(() => new SimpleCompiler(new Expression("foo(?i)bar(?-i)baz", ExpressionFlag.HsFlagUtf8), CompilerMode.HsModeBlock));
            await using var engine = engineBuilder.Build();
            var traces = loggerProvider.GetTraces();

            traces.Should().ContainMatch("*1 expression(s) compiled*");
        }
Пример #8
0
        internal PlaywrightSharpBaseTest(ITestOutputHelper output)
        {
            BaseDirectory = Path.Combine(Directory.GetCurrentDirectory(), "workspace");
            var dirInfo = new DirectoryInfo(BaseDirectory);

            if (!dirInfo.Exists)
            {
                dirInfo.Create();
            }

            Initialize();

            _loggerProvider = new XunitLoggerProvider(output);
            TestConstants.LoggerFactory.AddProvider(_loggerProvider);

            output.WriteLine($"Running {GetDisplayName(output)}");
        }
        internal PlaywrightSharpBaseTest(ITestOutputHelper output)
        {
            BaseDirectory = Path.Combine(Directory.GetCurrentDirectory(), "workspace");
            var dirInfo = new DirectoryInfo(BaseDirectory);

            if (!dirInfo.Exists)
            {
                dirInfo.Create();
            }

            Initialize();

            _loggerProvider = new XunitLoggerProvider(output);
            TestConstants.LoggerFactory.AddProvider(_loggerProvider);

            output.WriteLine($"Running {GetDisplayName(output)}");
            output.WriteLine($"Using Browser: {((ChannelBase)((IChannelOwner<PlaywrightSharp.Browser>)PlaywrightSharpBrowserLoaderFixture.Browser).Channel).Guid}");
        }
Пример #10
0
        public async Task Engine_With_Simple_Compiler_And_Block_Mode_Should_Match_Pattern()
        {
            var loggerProvider = new XunitLoggerProvider(_testOutputHelper);
            var engineBuilder  = new EngineBuilder();

            engineBuilder.WithLogger(loggerProvider.CreateLogger("Hyperscan"));
            engineBuilder.WithDatabase(() => new Database());
            engineBuilder.WithCompiler(() => new SimpleCompiler(new Expression("foo(?i)bar(?-i)baz", ExpressionFlag.HsFlagUtf8), CompilerMode.HsModeBlock));
            await using var engine = engineBuilder.Build();
            var onMatch = engine.OnMatch.FirstAsync().ToTask();
            await engine.ScanAsync("foofoobarbazbazbaz", CancellationToken.None);

            var match = await onMatch;

            match.Should().NotBeNull();
            match.Expression.Flag.Should().Be(ExpressionFlag.HsFlagUtf8);
            match.Expression.Id.Should().Be(0);
            match.Expression.TryGetInfo(out var info).Should().BeTrue();
            info.CompilationErrorMessage.Should().BeEmpty();
            match.Input.Read().Should().Be("foofoobarbazbazbaz");
            match.Expression.Pattern.Should().Be("foo(?i)bar(?-i)baz");
        }
 public WriteToLogInDisposeFixture()
 {
     this.provider = new XunitLoggerProvider();
     this.logger   = this.provider.CreateLogger("WriteToLogInDisposeFixture");
 }