Return-Path: X-Original-To: apmail-accumulo-dev-archive@www.apache.org Delivered-To: apmail-accumulo-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0A6EC10ADC for ; Mon, 18 Nov 2013 19:10:01 +0000 (UTC) Received: (qmail 97978 invoked by uid 500); 18 Nov 2013 19:10:00 -0000 Delivered-To: apmail-accumulo-dev-archive@accumulo.apache.org Received: (qmail 97939 invoked by uid 500); 18 Nov 2013 19:10:00 -0000 Mailing-List: contact dev-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@accumulo.apache.org Delivered-To: mailing list dev@accumulo.apache.org Received: (qmail 97931 invoked by uid 99); 18 Nov 2013 19:10:00 -0000 Received: from minotaur.apache.org (HELO minotaur.apache.org) (140.211.11.9) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 18 Nov 2013 19:10:00 +0000 Received: from localhost (HELO mail-la0-f50.google.com) (127.0.0.1) (smtp-auth username ctubbsii, mechanism plain) by minotaur.apache.org (qpsmtpd/0.29) with ESMTP; Mon, 18 Nov 2013 19:10:00 +0000 Received: by mail-la0-f50.google.com with SMTP id el20so5183782lab.23 for ; Mon, 18 Nov 2013 11:09:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=5g6wqQDBOqyaOYjsEmNwruE438Gp4//2ZbstLSxCNR4=; b=f86UoZdg2Yn5PMwsRwGWYCw51v6Ppc2q5pYQrlOwoQeXJ5eqBSCnDi8uCY09WzpwZ5 TnXlvptYoVmWzu2Lp/KY21SVr++3ojcKIkCDsZ6PB0R1n99bsi7ZbYDrroDurzZuI1Wm XOdj3ItHaOBM/nK4e6rW6ef+SNvrAUX1xmJxwqLRaQ86IcK0doVmpqpfwaJ7UNkt0FIm JidgBeI8qSNU+HPPsE5XHs0zKy6ALb8eKTk3amt28ri6NLhqsCcQT6UyocaoJBSGRDtL Nu3Fmt/BlFVIqA5soEQf9ApcWBVzrcpTpU5f3Kv5MjOH8ieS9yvjxpiX72lD0T3KDSHQ lhYg== MIME-Version: 1.0 X-Received: by 10.112.59.134 with SMTP id z6mr3121188lbq.28.1384801798673; Mon, 18 Nov 2013 11:09:58 -0800 (PST) Received: by 10.114.177.231 with HTTP; Mon, 18 Nov 2013 11:09:58 -0800 (PST) In-Reply-To: References: <00d901cee1a9$47686670$d6393350$@comcast.net> Date: Mon, 18 Nov 2013 14:09:58 -0500 Message-ID: Subject: Re: [VOTE] Deprecate mock in 1.6.0 From: Christopher To: Accumulo Dev List Content-Type: text/plain; charset=UTF-8 Eric, Is there a reason these cannot be done in Mockito or EasyMock? -- Christopher L Tubbs II http://gravatar.com/ctubbsii On Sun, Nov 17, 2013 at 7:22 PM, Eric Newton wrote: > -1 > > I'm a little more invested in Mock since I wrote the first instance of it. > I know it does not simulate the accumulo API perfectly. And I know it > adds some maintenance overhead for anyone adding new features to the API. > > However, adding additional testing requirements for a new API is something > I like. > > Take a counter example: the "file://" hdfs implementation. It allows you > to use the local file system through the same API you would use for the > distributed file system. > > Except, it doesn't. It does not behave the same as hdfs. None of our > recovery tests can use the local fs implementation because it just doesn't > implement the proper flush semantics. > > Yet dozens of our own tests rely on the speedy availability of the local fs > implementation. > > Having a fast way to test iterators that uses a test harness is not the > same thing as testing the iterators using the same API they would use > without Mock. I have long called for an iterator test harness to stress > the issues of iterator lifetimes. > > Finally, I would humbly suggest that our software has stabilized to the > point where we tests at all levels: > > * iterator stress tester > * Mock API > * Integration test using MAC > * System tests that can be run at full scale > > > > > > > > On Sat, Nov 16, 2013 at 1:12 PM, Corey Nolet wrote: > >> +1 for keeping a fast and easy (and well documented) mechanism for >> debugging iterators. Perhaps the SortedMapiterator is the solution..but the >> key words here are 'well documented' >> >> -1 for continuing support a half implemented mock framework that we have to >> maintain. It makes code maintenance very hard when you couldnt, for >> instance in the 1.3 series, even create a MockBatchDeleter. As Chris >> stated, I agree that using the mock in the past had users walking the line >> too closely between unit and integration tests. With the mock, I could >> write a bunch of fully valid tests against an iterator without the ability >> to verify that compactions didn't negatively affect my results. Except for >> being fast, the MAC mostly eliminates the need to use the mock for that >> kind of test at all while it makes the tests more valid to an actual >> runtime environment. >> >> +1 for mocking framework to be used in relevant unit tests. There are times >> when a quick and dirty mock is immensely useful and MAC is slow and way >> overkill for those tasks. Perhaps it would be worth a ticket to investigate >> replacing the current usages of mockAccumulo (I haven't looked in awhile) >> with said mocking framework. >> >> On Nov 15, 2013 3:29 PM, "Michael Berman" wrote: >> > >> > +1 (not really a voter) >> > >> > I think iterator unit tests should use SortedMapIterator, not anything >> like >> > a full accumulo stack, and I think MAC is far more suitable for >> integration >> > tests because it actually runs the same code...it's impossible for an >> > outsider to tell in which behaviors mock reflects actual accumulo and in >> > which it does something totally different. >> > >> > I do think MAC needs some help, but I think the process of excising mock >> > from our own tests will flesh out what we need there better than anything >> > else we could do. >> > >> > >> > On Thu, Nov 14, 2013 at 9:20 PM, wrote: >> > >> > > +1 >> > > >> > > >> > > >> > > *From:* Keith Turner [mailto:keith@deenlo.com] >> > > *Sent:* Thursday, November 14, 2013 3:42 PM >> > > *To:* dev@accumulo.apache.org; user@accumulo.apache.org >> > > *Subject:* [VOTE] Deprecate mock in 1.6.0 >> > > >> > > >> > > >> > > Should we deprecate mock accumulo for 1.6.0? This was considered [1] >> for >> > > 1.5.0. I started thinking about this because I never added conditional >> > > writer to mock. >> > > >> > > >> > > >> > > [1] : https://issues.apache.org/jira/browse/ACCUMULO-878 >> > > >>