public void fresh_readable_checkpoint_returns_zero() { using (var check = FileEventPointer.OpenOrCreateForReading(FileName)) { Assert.AreEqual(0, check.Read()); } }
public void readonly_checkpoint_throws() { using (var check = FileEventPointer.OpenOrCreateForReading(FileName)) { check.Write(long.MaxValue); } }
public void writeable_checkpoint_writes_expected_value() { using (var check = FileEventPointer.OpenOrCreateForWriting(FileName)) { check.Write(long.MaxValue); Assert.AreEqual(check.Read(), long.MaxValue); } }
public bool Execute(CommandProcessorContext context, CancellationToken token, string[] args) { // [abdullin]: we don't need checkpoint write flood (multi-threads) // since there is only one writer by default int repeat = 10000; if (args.Length > 0) { int.TryParse(args[0], out repeat); } const string checkpointName = "epfl.chk"; AzureStoreConfiguration configuration; var location = context.Client.Options.StoreLocation; if (AzureStoreConfiguration.TryParse(location, out configuration)) { var container = CloudStorageAccount.Parse(configuration.ConnectionString) .CreateCloudBlobClient() .GetContainerReference(configuration.RootBlobContainerName); container.CreateIfNotExist(); var blob = container.GetPageBlobReference(checkpointName); blob.Create(512); try { using (var pointer = new TestAzurePointer(blob)) { TestPointer(context, pointer, repeat, "page"); } using (var pointer = AzureEventPointer.OpenWriteable(blob)) { TestPointer(context, pointer, repeat, "meta"); } } finally { blob.DeleteIfExists(); } } else { var fullName = Path.Combine(location, checkpointName); try { using (var openOrCreateForWriting = FileEventPointer.OpenOrCreateForWriting(fullName)) { TestPointer(context, openOrCreateForWriting, repeat, "file"); } } finally { File.Delete(fullName); } } return(true); }