Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- Author: "leshiy1295@yandex.ru",
- TestName: "3 nodes - invalid receive counter on destination from another source",
- NodeCount: 3,
- SendRequests: []lib.SendRequest{
- {
- Timestamp: 5,
- Source: 0,
- Destination: 1,
- Value: "msg01",
- },
- {
- Timestamp: 0,
- Source: 2,
- Destination: 1,
- Value: "msg21",
- },
- },
- DelayFunc: func(message lib.SentMessage) int {
- return message.DeliverTimestamp
- },
- Validators: []lib.Validator{
- {
- Timestamp: lib.MaxTimestamp - 1,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg01"})
- },
- },
- },
- },
- {
- Author: "leshiy1295@yandex.ru",
- TestName: "2 nodes - crash on no messages at all",
- NodeCount: 2,
- SendRequests: []lib.SendRequest{},
- DelayFunc: func(message lib.SentMessage) int {
- return message.DeliverTimestamp
- },
- Validators: []lib.Validator{
- {
- Timestamp: lib.MaxTimestamp - 1,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- },
- },
- {
- Author: "leshiy1295@yandex.ru",
- TestName: "1 node - message to self",
- NodeCount: 2,
- SendRequests: []lib.SendRequest{
- {
- Timestamp: 0,
- Source: 0,
- Destination: 0,
- Value: "msg00",
- },
- },
- DelayFunc: func(message lib.SentMessage) int {
- return message.DeliverTimestamp
- },
- Validators: []lib.Validator{
- {
- Timestamp: lib.MaxTimestamp - 1,
- Node: 0,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg00"})
- },
- },
- },
- },
- {
- Author: "leshiy1295@yandex.ru",
- TestName: "2 nodes - strange network with reverse order",
- NodeCount: 2,
- SendRequests: []lib.SendRequest{
- {
- Timestamp: 0,
- Source: 0,
- Destination: 1,
- Value: "msg1",
- },
- {
- Timestamp: 1,
- Source: 0,
- Destination: 1,
- Value: "msg2",
- },
- {
- Timestamp: 2,
- Source: 0,
- Destination: 1,
- Value: "msg3",
- },
- {
- Timestamp: 3,
- Source: 0,
- Destination: 1,
- Value: "msg4",
- },
- {
- Timestamp: 4,
- Source: 0,
- Destination: 1,
- Value: "msg5",
- },
- },
- DelayFunc: func(message lib.SentMessage) int {
- switch message.Message.Value() {
- case "msg1":
- return 500
- case "msg2":
- return 400
- case "msg3":
- return 300
- case "msg4":
- return 200
- case "msg5":
- return 100
- default:
- panic("Unexpected message")
- }
- },
- Validators: []lib.Validator{
- {
- Timestamp: lib.MaxTimestamp - 1,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg1", "msg2", "msg3", "msg4", "msg5"})
- },
- },
- },
- },
- {
- Author: "leshiy1295@yandex.ru",
- TestName: "4 nodes - don't use global counter",
- NodeCount: 4,
- SendRequests: []lib.SendRequest{
- {
- Timestamp: 0,
- Source: 0,
- Destination: 3,
- Value: "msg03",
- },
- {
- Timestamp: 1,
- Source: 0,
- Destination: 3,
- Value: "msg03",
- },
- {
- Timestamp: 0,
- Source: 2,
- Destination: 3,
- Value: "msg23",
- },
- {
- Timestamp: 1,
- Source: 2,
- Destination: 1,
- Value: "msg21",
- },
- {
- Timestamp: 2,
- Source: 0,
- Destination: 1,
- Value: "msg01",
- },
- },
- DelayFunc: func(message lib.SentMessage) int {
- if message.Message.Value() == "msg03" {
- return 10
- }
- return message.DeliverTimestamp
- },
- Validators: []lib.Validator{
- {
- Timestamp: lib.MaxTimestamp - 1,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg01"})
- },
- },
- {
- Timestamp: lib.MaxTimestamp - 1,
- Node: 3,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg03", "msg03"})
- },
- },
- {
- Timestamp: lib.MaxTimestamp - 1,
- Node: 3,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg23"})
- },
- },
- {
- Timestamp: lib.MaxTimestamp - 1,
- Node: 1,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg21"})
- },
- },
- },
- },
- {
- Author: "leshiy1295@yandex.ru",
- TestName: "3 nodes - random example",
- NodeCount: 3,
- SendRequests: []lib.SendRequest{
- {
- Timestamp: 0,
- Source: 0,
- Destination: 1,
- Value: "msg1",
- },
- {
- Timestamp: 10,
- Source: 2,
- Destination: 0,
- Value: "msg2",
- },
- {
- Timestamp: 15,
- Source: 0,
- Destination: 2,
- Value: "msg3",
- },
- {
- Timestamp: 20,
- Source: 0,
- Destination: 1,
- Value: "msg4",
- },
- },
- DelayFunc: func(message lib.SentMessage) int {
- switch message.Message.Value() {
- case "msg1":
- return 10
- case "msg2":
- return 25
- case "msg3":
- return 35
- case "msg4":
- return 60
- default:
- panic("Unexpected message")
- }
- },
- Validators: []lib.Validator{
- {
- Timestamp: 0,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 10,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg1"})
- },
- },
- {
- Timestamp: 15,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg1"})
- },
- },
- {
- Timestamp: 15,
- Node: 0,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 20,
- Node: 0,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 25,
- Node: 0,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg2"})
- },
- },
- {
- Timestamp: 35,
- Node: 0,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg2"})
- },
- },
- {
- Timestamp: 35,
- Node: 2,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg3"})
- },
- },
- {
- Timestamp: 60,
- Node: 2,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg3"})
- },
- },
- {
- Timestamp: 60,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg1", "msg4"})
- },
- },
- },
- },
- {
- Author: "leshiy1295@yandex.ru",
- TestName: "3 nodes - chain",
- NodeCount: 3,
- SendRequests: []lib.SendRequest{
- {
- Timestamp: 0,
- Source: 0,
- Destination: 1,
- Value: "msg1",
- },
- {
- Timestamp: 10,
- Source: 2,
- Destination: 0,
- Value: "msg2",
- },
- {
- Timestamp: 15,
- Source: 0,
- Destination: 2,
- Value: "msg3",
- },
- {
- Timestamp: 20,
- Source: 0,
- Destination: 1,
- Value: "msg4",
- },
- },
- DelayFunc: func(message lib.SentMessage) int {
- switch message.Message.Value() {
- case "msg1":
- return 10
- case "msg2":
- return 15
- case "msg3":
- return 20
- case "msg4":
- return 40
- default:
- panic("Unexpected message")
- }
- },
- Validators: []lib.Validator{
- {
- Timestamp: 0,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 10,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg1"})
- },
- },
- {
- Timestamp: 15,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg1"})
- },
- },
- {
- Timestamp: 15,
- Node: 0,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg2"})
- },
- },
- {
- Timestamp: 20,
- Node: 0,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg2"})
- },
- },
- {
- Timestamp: 25,
- Node: 0,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg2"})
- },
- },
- {
- Timestamp: 35,
- Node: 0,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg2"})
- },
- },
- {
- Timestamp: 19,
- Node: 2,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 20,
- Node: 2,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg3"})
- },
- },
- {
- Timestamp: 60,
- Node: 2,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg3"})
- },
- },
- {
- Timestamp: 60,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg1", "msg4"})
- },
- },
- {
- Timestamp: 39,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg1"})
- },
- },
- {
- Timestamp: 40,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg1", "msg4"})
- },
- },
- },
- },
- {
- Author: "leshiy1295@yandex.ru",
- TestName: "3 nodes - lecture clocks",
- NodeCount: 3,
- SendRequests: []lib.SendRequest{
- {
- Timestamp: 5,
- Source: 0,
- Destination: 1,
- Value: "msg01",
- },
- {
- Timestamp: 5,
- Source: 0,
- Destination: 2,
- Value: "msg02",
- },
- {
- Timestamp: 10,
- Source: 1,
- Destination: 0,
- Value: "msg10",
- },
- {
- Timestamp: 10,
- Source: 1,
- Destination: 2,
- Value: "msg12",
- },
- },
- DelayFunc: func(message lib.SentMessage) int {
- switch message.Message.Value() {
- case "msg01":
- return 6
- case "msg02":
- return 30
- case "msg10":
- return 20
- case "msg12":
- return 20
- default:
- panic("Unexpected message")
- }
- },
- Validators: []lib.Validator{
- {
- Timestamp: 0,
- Node: 0,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 0,
- Node: 0,
- Source: 1,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 0,
- Node: 0,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 0,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 0,
- Node: 1,
- Source: 1,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 0,
- Node: 1,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 0,
- Node: 2,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 0,
- Node: 2,
- Source: 1,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 0,
- Node: 2,
- Source: 2,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 6,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg01"})
- },
- },
- {
- Timestamp: 10,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg01"})
- },
- },
- {
- Timestamp: 20,
- Node: 2,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 20,
- Node: 2,
- Source: 1,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg12"})
- },
- },
- {
- Timestamp: 20,
- Node: 0,
- Source: 1,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg10"})
- },
- },
- {
- Timestamp: 40,
- Node: 2,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg02"})
- },
- },
- },
- },
- {
- Author: "leshiy1295@yandex.ru",
- TestName: "2 nodes - max plays",
- NodeCount: 2,
- SendRequests: []lib.SendRequest{
- {
- Timestamp: 0,
- Source: 0,
- Destination: 0,
- Value: "",
- },
- {
- Timestamp: 1,
- Source: 1,
- Destination: 0,
- Value: "msg10",
- },
- {
- Timestamp: lib.MaxSendTimestamp,
- Source: 1,
- Destination: 1,
- Value: "msg11",
- },
- {
- Timestamp: lib.MaxSendTimestamp,
- Source: 0,
- Destination: 0,
- Value: "msg00",
- },
- {
- Timestamp: lib.MaxSendTimestamp,
- Source: 0,
- Destination: 1,
- Value: "msg01",
- },
- },
- DelayFunc: func(message lib.SentMessage) int {
- switch message.Message.Value() {
- case "":
- return message.SendTimestamp + lib.MaxMessageDelay
- case "msg01":
- return message.SendTimestamp + lib.MaxMessageDelay
- case "msg10":
- return message.SendTimestamp + lib.MaxMessageDelay
- case "msg11":
- return message.SendTimestamp + lib.MaxMessageDelay
- case "msg00":
- return message.SendTimestamp + lib.MaxMessageDelay - 1
- default:
- panic("Unexpected message")
- }
- },
- Validators: []lib.Validator{
- {
- Timestamp: lib.MaxMessageDelay,
- Node: 0,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{""})
- },
- },
- {
- Timestamp: lib.MaxMessageDelay,
- Node: 0,
- Source: 1,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 1 + lib.MaxMessageDelay,
- Node: 0,
- Source: 1,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg10"})
- },
- },
- {
- Timestamp: lib.MaxTimestamp,
- Node: 0,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"", "msg00"})
- },
- },
- {
- Timestamp: lib.MaxTimestamp,
- Node: 0,
- Source: 1,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg10"})
- },
- },
- {
- Timestamp: lib.MaxTimestamp,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg01"})
- },
- },
- {
- Timestamp: lib.MaxTimestamp,
- Node: 1,
- Source: 1,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg11"})
- },
- },
- },
- },
- {
- Author: "leshiy1295@yandex.ru",
- TestName: "2 nodes - from different to equal",
- NodeCount: 2,
- SendRequests: []lib.SendRequest{
- {
- Timestamp: 0,
- Source: 0,
- Destination: 1,
- Value: "msg1",
- },
- {
- Timestamp: 1,
- Source: 0,
- Destination: 1,
- Value: "msg2",
- },
- },
- DelayFunc: func(message lib.SentMessage) int {
- switch message.Message.Value() {
- case "msg1":
- return 10
- case "msg2":
- return 10
- default:
- panic("Unexpected message")
- }
- },
- Validators: []lib.Validator{
- {
- Timestamp: 9,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{})
- },
- },
- {
- Timestamp: 10,
- Node: 1,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg1", "msg2"})
- },
- },
- },
- },
- {
- Author: "leshiy1295@yandex.ru",
- TestName: "3 nodes - incorrect heap attack",
- NodeCount: 3,
- SendRequests: []lib.SendRequest{
- {
- Timestamp: 0,
- Source: 0,
- Destination: 2,
- Value: "msg02-1",
- },
- {
- Timestamp: 1,
- Source: 0,
- Destination: 2,
- Value: "msg02-2",
- },
- {
- Timestamp: 0,
- Source: 1,
- Destination: 2,
- Value: "msg12",
- },
- },
- DelayFunc: func(message lib.SentMessage) int {
- switch message.Message.Value() {
- case "msg02-1":
- return 5
- case "msg02-2":
- return 2
- case "msg12":
- return 3
- default:
- panic("Unexpected message")
- }
- },
- Validators: []lib.Validator{
- {
- Timestamp: 5,
- Node: 2,
- Source: 1,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg12"})
- },
- },
- {
- Timestamp: 5,
- Node: 2,
- Source: 0,
- Validate: func(values []string) bool {
- return equal(values, []string{"msg02-1", "msg02-2"})
- },
- },
- },
- },
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement