Skip to content

Commit

Permalink
impl/memory: Use random int as auto generated task name in Task Queues.
Browse files Browse the repository at this point in the history
This matches reality better than a string or 500 random characters, and makes
writing expectation-style tests simpler.

R=iannucci@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2547793002
  • Loading branch information
vadimsht authored and Commit bot committed Dec 2, 2016
1 parent 84c7d59 commit 7941536
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
8 changes: 2 additions & 6 deletions impl/memory/taskqueue_data.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,9 @@ func newSortedQueue(name string, isPullQueue bool) *sortedQueue {
// All sortedQueue methods are assumed to be called under taskQueueData lock.

func (q *sortedQueue) genTaskName(c context.Context) string {
const validTaskChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_"
for {
buf := [500]byte{}
for i := 0; i < 500; i++ {
buf[i] = validTaskChars[mathrand.Intn(c, len(validTaskChars))]
}
name := string(buf[:])
// Real Task Queue service seems to be using random ints too.
name := fmt.Sprintf("%d", mathrand.Int63(c))
_, ok1 := q.tasks[name]
_, ok2 := q.archived[name]
if !ok1 && !ok2 {
Expand Down
12 changes: 8 additions & 4 deletions impl/memory/taskqueue_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,16 @@ func TestTaskQueue(t *testing.T) {
t.RetryOptions = &tq.RetryOptions{AgeLimit: 7 * time.Second}
So(tq.Add(c, "", t), ShouldBeNil)

name := "Z_UjshxM9ecyMQfGbZmUGOEcgxWU0_5CGLl_-RntudwAw2DqQ5-58bzJiWQN4OKzeuUb9O4JrPkUw2rOvk2Ax46THojnQ6avBQgZdrKcJmrwQ6o4qKfJdiyUbGXvy691yRfzLeQhs6cBhWrgf3wH-VPMcA4SC-zlbJ2U8An7I0zJQA5nBFnMNoMgT-2peGoay3rCSbj4z9VFFm9kS_i6JCaQH518ujLDSNCYdjTq6B6lcWrZAh0U_q3a1S2nXEwrKiw_t9MTNQFgAQZWyGBbvZQPmeRYtu8SPaWzTfd25v_YWgBuVL2rRSPSMvlDwE04nNdtvVzE8vNNiA1zRimmdzKeqATQF9_ReUvj4D7U8dcS703DZWfKMBLgBffY9jqCassOOOw77V72Oq5EVauUw3Qw0L6bBsfM9FtahTKUdabzRZjXUoze3EK4KXPt3-wdidau-8JrVf2XFocjjZbwHoxcGvbtT3b4nGLDlgwdC00bwaFBZWff"
So(tqt.GetScheduledTasks()["default"][name], ShouldResemble, &tq.Task{
var scheduled *tq.Task
for _, t := range tqt.GetScheduledTasks()["default"] {
scheduled = t
break
}
So(scheduled, ShouldResemble, &tq.Task{
ETA: now.Add(4 * time.Second),
Header: http.Header{"Cat": []string{"tabby"}},
Method: "POST",
Name: name,
Name: "7569393727548727334",
Path: "/hello/world",
Payload: []byte("watwatwat"),
RetryOptions: &tq.RetryOptions{AgeLimit: 7 * time.Second},
Expand Down Expand Up @@ -152,7 +156,7 @@ func TestTaskQueue(t *testing.T) {
Convey(fmt.Sprintf("task %d: %s", i, expect[i].Path), func() {
So(expect[i].Method, ShouldEqual, "POST")
So(expect[i].ETA, ShouldHappenOnOrBefore, now)
So(len(expect[i].Name), ShouldEqual, 500)
So(len(expect[i].Name), ShouldEqual, 19)
})
}

Expand Down

0 comments on commit 7941536

Please sign in to comment.