Hi!
Ack from me, with some comments. I haven't had time to review the code,
so my comments are just from trying to build and test it. Since you
already have an ack from Mahesh, I think you can go ahead and push it
after you have fixed the first of my comments:
1 (major): If I configure OpenSAF with "./configure --enable-tests
--disable-ais-ckpt", then OpenSAF fails to build:
make[2]: *** No rule to make target
`../../osaf/libs/saf/libSaCkpt/libSaCkpt.la', needed by `cpsvtest'. Stop.
make[2]: *** Waiting for unfinished jobs....
CC cpsvtest-test_cpa.o
CC cpsvtest-test_cpa_util.o
2: Maybe rename the test to ckpttest instead of cpsvtest?
3: A lot of the test cases fail when I run it on either of the system
controllers. Do you know why? This ought to be fixed; it is not so
useful to have tests that fail (unless you are doing TDD and are
planning to implement the code later on, but I am assuming this is not
the case here...)
# cpsvtest
Suite 1: CKPT API saCkptInitialize()
1 PASSED To verify that saCkptInitialize initializes checkpoint
service;
2 PASSED To verify initialization when NULL pointer is fed as clbks;
3 PASSED To verify initialization with NULL version pointer;
4 PASSED To verify initialization with NULL as paramaters for
clbks and version;
5 PASSED To verify initialization with error version relCode <
supported release code;
6 PASSED To verify initialization with error version relCode >
supported;
7 PASSED To verify initialization with error version
majorVersion > supported;
8 PASSED To verify init whether correct version is returned when
wrong version is passed;
9 PASSED To verify saCkptInitialize with NULL handle;
10 PASSED To verify saCkptInitialize with one NULL clbk;
Suite 2: CKPT API saCkptSelectObjectGet()
1 PASSED To verify saCkptSelectionObjectGet returns operating
system handle;
2 PASSED To verify SelObj api with uninitialized handle;
3 PASSED To verify SelObj api with finalized handle;
4 PASSED To verify SelObj api with NULL handle;
5 PASSED To verify SelObj api with NULL selObj;
6 PASSED To verify SelObj api with both NULL handle and selObj;
Suite 3: CKPT API saCkptDispatch()
1 PASSED To verify that callback is invoked when dispatch is
called with DISPATCH_ONE;
2 PASSED To verify that callback is invoked when dispatch is
called with DISPATCH_ALL;
3 PASSED To verify that dispatch blocks for callback when
dispatchFlag is DISPATCH_BLOCKING;
4 PASSED To verify dispatch with invalid dispatchFlag;
5 PASSED To verify dispatch with NULL ckptHandle and DISPATCH_ONE;
6 PASSED To verify dispatch with NULL ckptHandle and DISPATCH_ALL;
7 PASSED To verify dispatch with NULL ckptHandle and
DISPATCH_BLOCKING;
8 PASSED To verify dispatch with invalid ckptHandle and
DISPATCH_ONE;
9 PASSED To verify dispatch after finalizing ckpt service;
Suite 4: CKPT API saCkptFinalize()
1 PASSED To verify that finalize closes association between
service and process;
2 PASSED To verify finalize when service is not initialized;
3 PASSED To verify that after finalize selobj gets invalid;
4 PASSED To verify that after finalize ckpts are closed;
Suite 5: CKPT API saCkptCheckpointOpen()
1 PASSED To verify opening a ckpt with synchronous update option;
2 PASSED To verify opening a ckpt with asynchronous update option;
3 PASSED To verify opening an existing ckpt;
4 PASSED To verify opening an existing ckpt when its creation
attributes match;
5 PASSED To verify opening an nonexisting ckpt;
6 PASSED To verify opening an ckpt when
SA_CKPT_CHECKPOINT_CREATE flag not set and CR_ATTR is NOT NULL;
7 PASSED To verify opening an ckpt when
SA_CKPT_CHECKPOINT_CREATE flag set and CR_ATTR is NULL;
8 PASSED To verify opening an ckpt with ckptSize > maxSec *
maxSectionSize;
9 PASSED To verify opening an ckpt when
ALL_REPLICAS|ACTIVE_REPLICA specified;
10 PASSED To verify opening an ckpt when
ALL_REPLICAS|ACTIVE_REPLICA_WEAK specified;
11 PASSED To verify opening an ckpt when
ACTIVE_REPLICA|ACTIVE_REPLICA_WEAK specified;
12 PASSED To verify opening an ckpt when NULL name is specified;
13 PASSED To verify opening an ckpt with
SA_CKPT_CHECKPOINT_CREATE flag not set and CR_ATTR NOT NULL;
14 PASSED To verify opening an ckpt when NULL is passed as
checkpointHandle;
15 PASSED To verify opening an ckpt when ALL_REPLICAS|COLLOCATED
is specified;
16 PASSED To verify opening an ckpt when REPLICA_WEAK|COLLOCATED
is specified;
17 PASSED To verify opening an ckpt when
ACTIVE_REPLICA|COLLOCATED is specified;
18 PASSED To verify opening an ckpt when invalid openFlags is
specified;
19 PASSED To verify creating a ckpt when already exists but with
different creation attributes;
20 PASSED To verify creating a ckpt when already exists but with
different ckpt size;
21 PASSED To verify creating a ckpt when already exists but with
different retention duration;
22 PASSED To verify creating a ckpt when already exists but with
different maxSections;
23 PASSED To verify creating a ckpt when already exists but with
different maxSectionSize;
24 PASSED To verify creating a ckpt when already exists but with
different maxSectionIdSize;
25 PASSED To verify creating a ckpt when ckpt service has not
been initialized;
26 PASSED To verify creating a ckpt when NULL open clbk is
provided during initialization;
27 PASSED To verify openAsync with synchronous update option;
28 PASSED To verify openAsync with asynchronous update option;
29 PASSED To verify openAsync to open an existing ckpt;
30 PASSED To verify openAsync to open an existing ckpt if its
creation attributes match;
31 PASSED To verify openAsync to open an nonexisting ckpt;
32 PASSED To verify openAsync with SA_CKPT_CHECKPOINT_CREATE flag
not set and CR_ATTR NOT NULL;
33 PASSED To verify openAsync with SA_CKPT_CHECKPOINT_CREATE flag
set and NULL CR_ATTR;
34 PASSED To verify openAsync with ckptSize > maxSec *
maxSectionSize;
35 PASSED To verify openAsync when ALL_REPLICAS|ACTIVE_REPLICA
specified;
36 PASSED To verify openAsync when
ALL_REPLICAS|ACTIVE_REPLICA_WEAK specified;
37 PASSED To verify openAsync when
ACTIVE_REPLICA|ACTIVE_REPLICA_WEAK specified;
38 PASSED To verify openAsync when NULL name is specified;
39 PASSED To verify openAsync for reading/writing which is not
created;
40 PASSED To verify openAsync when NULL invocation is specified;
41 PASSED To verify openAsync when ALL_REPLICAS|COLLOCATED is
specified;
42 PASSED To verify openAsync when REPLICA_WEAK|COLLOCATED is
specified;
43 PASSED To verify openAsync when ACTIVE_REPLICA|COLLOCATED is
specified;
44 PASSED To verify openAsync when invalid openFlags is specified;
45 PASSED To verify openAsync when already exists but with
different creation attributes;
46 PASSED To verify openAsync when already exists but with
different checkpointSize;
47 PASSED To verify openAsync when already exists but with
different retentionDuration;
48 PASSED To verify openAsync when already exists but with
different maxSections;
49 PASSED To verify openAsync when already exists but with
different maxSectionSize;
50 PASSED To verify openAsync when already exists but with
different maxSectionIdSize;
51 PASSED To verify creating a ckpt with invalid creation flags;
52 PASSED To verify creating a ckpt with invalid creation flags;
53 PASSED To verify creating a ckpt with invalid creation flags;
Suite 6: CKPT API saCkptCheckpointClose()
1 PASSED To verify Closing of the checkpoint designated by
checkpointHandle;
2 PASSED To verify that after close checkpointHandle is no
longer valid;
3 PASSED To test Closing of the checkpoint after unlink;
4 PASSED To test Closing of the checkpoint before unlink;
5 PASSED To test close api when calling process is not
registered with checkpoint service;
6 PASSED To verify that close cancels all pending callbacks;
7 FAILED To test that the checkpoint can be opened after close
and before checkpoint expiry (expected SA_AIS_NOT_VALID, got
SA_AIS_ERR_LIBRARY);
8 PASSED To verify that close cancels pending callbacks for that
handle only;
Suite 7: CKPT API saCkptCheckpointUnlink()
1 PASSED To test Unlink deletes the existing checkpoint from the
cluster;
2 PASSED To test that name is no longer valid after unlink;
3 PASSED To test that the ckpt with same name can be created
after unlinking and yet not closed;
4 PASSED To test that ckpt gets deleted immediately when no
process has opened it;
5 PASSED To test that the ckpt can be accessed after unlinking
till it is closed;
6 PASSED To test unlink after retention duration of ckpt;
7 PASSED To test Closing of the checkpoint before unlink;
8 FAILED To test unlink with correct handle (expected
SA_AIS_NOT_VALID, got SA_AIS_OK);
9 PASSED To test unlink with uninitialized handle;
10 PASSED To test unlink in the child process - NOT SUPPORTED;
11 PASSED To test unlink with NULL ckpt name;
Suite 8: CKPT API saCkptRetenionDurationSet()
1 PASSED To test that invoking rdset changes the rd for the
checkpoint;
2 PASSED To test that invoking rdset changes the rd for the
checkpoint;
3 PASSED To test rdset api with invalid handle;
4 FAILED To test when rdset is invoked after unlink (expected
SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
5 PASSED To test when ret.duration to be set is zero;
Suite 9: CKPT API saCkptActiveReplicaSet()
1 PASSED To verify that local replica becomes active after
invoking replicaset;
2 PASSED To test that replica can be set for only for collocated
ckpt;
3 PASSED To test replica can be set active only for asynchronous
ckpt;
4 PASSED To test replica set when handle with read option is
passed to the api;
5 PASSED To verify replicaset when an invalid handle is passed;
Suite 10: CKPT API saCkptCheckpointStatusGet()
1 PASSED To test that this api can be used to retrieve the
checkpoint status;
2 PASSED To test when arbitrary handle is passed to status get api;
3 PASSED To test status get when there is no active replica;
4 PASSED To test status get when invalid param is passed;
Suite 11: CKPT API saCkptSectionCreate()
1 PASSED To verify section create with arbitrary handle;
2 PASSED To verify section create with correct handle;
3 PASSED To verify creating sections greater than maxSections;
4 PASSED To verify section create when there is no active replica;
5 PASSED To verify section create when ckpt is not opened in
write mode;
6 PASSED To verify section create when maxSections is 1;
7 PASSED To verify section create with NULL section creation
attributes;
8 PASSED To verify section create with NULL initial data and
datasize > 0;
9 PASSED To verify section create with NULL initial data and
datasize = 0;
10 FAILED To verify section create with sectionId which is
already present (expected SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
11 PASSED To verify section create with generated sectionId;
12 PASSED To verify section create with section idLen greater
than maxsec id size;
13 PASSED To verify section create with section idSize zero;
14 PASSED To verify free of section create with generated sectionId;
Suite 12: CKPT API saCkptSectionDelete()
1 PASSED To verify section delete with arbitrary handle;
2 PASSED To verify section delete with correct handle;
3 PASSED To verify section delete when ckpt is not opened in
write mode;
4 PASSED To verify section delete with an invalid section id;
5 PASSED To verify that when a section is deleted it is deleted
atleast in active replica;
6 PASSED To verify section delete when maxSections is 1;
Suite 13: CKPT API saCkptSectionExpirationTimeSet()
1 PASSED To verify section expset with arbitrary handle;
2 PASSED To verify section expset with correct handle;
3 PASSED To verify that section exp time of a default section
cannot be changed;
4 PASSED To verify section exp set when ckpt is opened in read mode;
5 PASSED To verify section exp set with invalid sectionid;
Suite 14: CKPT API saCkptSectionIterationInitialize()
1 PASSED To verify that iter init returns handle;
2 PASSED To verify iter init with bad handle;
3 PASSED To verify iter init with finalized handle;
4 PASSED To verify sections with SA_TIME_END are returned when
sectionsChosen is FOREVER;
5 FAILED To verify iter init when sectionsChosen is LEQ_EXP_TIME
(expected SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
6 FAILED To verify iter init when sectionsChosen is GEQ_EXP_TIME
(expected SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
7 PASSED To verify iter init with NULL section iter handle;
8 PASSED To verify iter init with invalid sectionsChosen value;
Suite 15: CKPT API saCkptSectionIterationNext()
1 PASSED To verify iter next with uninitialized handle;
2 PASSED To verify that sec created before iter init and not
deleted before iterfinalize are returned;
3 FAILED To verify iter next with NULL sec descriptor (expected
SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
4 FAILED To verify iter next after Finalize (expected
SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
Suite 16: CKPT API saCkptSectionIterationFinalize()
1 FAILED To verify iter finalize with correct handle (expected
SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
2 PASSED To verify iter finalize with arbitrary handle;
3 FAILED To verify iter finalize when ckpt has been closed and
unlinked (expected SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
Suite 17: CKPT API saCkptCheckpointWrite()
1 PASSED To verify that write api writes into the ckpt;
2 FAILED To verify that write api writes into the ACTIVE_REPLICA
ckpt (expected SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
3 PASSED To verify that write api writes into the
ACTIVE_REPLICA_WEAK ckpt;
4 PASSED To verify that write api writes into the COLLOCATED ckpt;
5 PASSED To verify write api with an arbitrary handle;
6 PASSED To verify write api after finalize is called;
7 PASSED To verify write when there is no such section in the ckpt;
8 PASSED To verify write when the ckpt is not opened for writing;
9 PASSED To verify write when NULL iovector is passed;
10 PASSED To verify write when the data to be written exceeds the
maxSectionSize;
11 PASSED To verify write with NULL err index;
12 PASSED To verify write when the dataOffset+dataSize exceeds
maxSectionSize;
13 PASSED To verify write when there is more than one section to
be written and read from ckpt;
Suite 18: CKPT API saCkptCheckpointRead()
1 PASSED To verify that when data is read the data is copied;
2 PASSED To verify read with arbitrary handle;
3 PASSED To verify read with already finalized handle;
4 PASSED To verify read with sectionid that doesnot exist;
5 PASSED To verify read when the ckpt is not opened for reading;
6 PASSED To verify read when the dataSize > maxSectionSize;
7 PASSED To verify read when the dataOffset > maxSectionSize;
8 PASSED To verify read with NULL err index;
9 PASSED To verify read api when there is no data to be read;
10 PASSED To verify read api with NULL data buffer;
Suite 19: CKPT API saCkptCheckpointSynchronize()
1 FAILED To verify sync api (expected SA_AIS_NOT_VALID, got
SA_AIS_ERR_LIBRARY);
2 FAILED To verify sync async api (expected SA_AIS_NOT_VALID,
got SA_AIS_ERR_LIBRARY);
3 FAILED To verify sync api when the ckpt is opened in read mode
(expected SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
4 PASSED To verify sync api when the ckpt is synchronous;
5 PASSED To verify sync async api when the ckpt is synchronous;
6 FAILED To verify sync async api when the ckpt is opened in
read mode (expected SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
7 PASSED To verify sync async api when process is not registered
to have sync callback;
8 PASSED To verify sync api when there is no active replica;
9 PASSED To verify sync api when there are no sections in the ckpt;
10 PASSED To verify sync api when service is not initialized;
11 PASSED To verify sync async api when service is not initialized;
12 PASSED To verify sync api when service is finalized;
13 PASSED To verify sync async api when service is finalized;
14 FAILED To verify sync api with NULL handle (expected
SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
Suite 20: CKPT API saCkptSectionOverwrite()
1 PASSED To verify that overwrite writes into a section other
than default section;
2 PASSED To verify that overwrite writes into a default section;
3 PASSED To verify overwrite with dataSize > maxSectionSize;
4 FAILED To verify overwrite in ACTIVE_REPLICA ckpt (expected
SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
5 PASSED To verify overwrite with an arbitrary handle;
6 FAILED To verify overwrite with already finalized handle
(expected SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
7 PASSED To verify overwrite when section doesnot exist;
8 FAILED To verify overwrite when ckpt is not opened for writing
(expected SA_AIS_NOT_VALID, got SA_AIS_ERR_LIBRARY);
9 PASSED To verify overwrite when NULL dataBuffer is provided;
10 PASSED To verify overwrite when NULL sectionId is provided;
Suite 21: CKPT OpenCallBack
1 PASSED To verify opencallback when opening an nonexisting ckpt;
2 PASSED To verify openclbk when ckpt already exists but trying
to open with different creation attributes;
Suite 22: CKPT SynchronizeCallback
1 PASSED To verify sync clbk when there is no active replica;
Suite 23: CKPT Single node test cases
1 PASSED To verify that process can write into ckpt incrementally;
2 PASSED To verify status get after a section has been deleted;
3 PASSED To verify write and read with generated sectionId;
Suite 24: CKPT Arrival Callback
1 PASSED To verify the functionality of arrival callback;
2 PASSED To verify the arrival callback when NULL clbk is passed;
=====================================================================================
Test Result:
Total: 210
Passed: 191
Failed: 19
/ Anders Widell
On 11/25/2015 07:31 AM, Nhat Pham wrote:
> Hi Anders,
>
> Would you have comment on this? Thanks.
>
> Best regards,
> Nhat Pham
>
> -----Original Message-----
> From: A V Mahesh [mailto:[email protected]]
> Sent: Tuesday, November 24, 2015 10:57 AM
> To: Nhat Pham <[email protected]>; [email protected]
> Cc: [email protected]
> Subject: Re: [devel] [PATCH 0 of 1] Review Request for ckpt: cpsv tests
> improvement [#1481] v3
>
> Hi,
>
> ACK from me .
>
> It looks patch covered the previous comments are addressed , now we can push
> this patch ( not tested )
>
> subsequent while usage if we find any small things missing we can fix them as
> Bug later , so please go a head and push it .
>
>
> -AVM
>
>
> On 11/23/2015 8:44 AM, Nhat Pham wrote:
>> Hi,
>>
>> Could you please have a look at this patch? Thanks.
>>
>> Best regards,
>> Nhat Pham
>>
>> -----Original Message-----
>> From: Nhat Pham [mailto:[email protected]]
>> Sent: Monday, November 16, 2015 11:20 AM
>> To: [email protected]; [email protected]
>> Cc: [email protected]
>> Subject: [devel] [PATCH 0 of 1] Review Request for ckpt: cpsv tests
>> improvement [#1481] v3
>>
>> Summary: ckpt: cpsv tests improvement
>> Review request for Trac Ticket(s): 1481
>> Peer Reviewer(s): [email protected]; [email protected] Pull
>> request to: [email protected] Affected branch(es): default Development
>> branch: default
>>
>> --------------------------------
>> Impacted area Impact y/n
>> --------------------------------
>> Docs n
>> Build system n
>> RPM/packaging n
>> Configuration files n
>> Startup scripts n
>> SAF services y
>> OpenSAF services n
>> Core libraries n
>> Samples n
>> Tests y
>> Other n
>>
>>
>> Comments (indicate scope for each "y" above):
>> ---------------------------------------------
>>
>> changeset f67165cd4720b24c4343b17692f1409cd936794f
>> Author: Nhat Pham <[email protected]>
>> Date: Mon, 16 Nov 2015 11:12:57 +0700
>>
>> ckpt: cpsv tests improvement [#1481]
>>
>> To make cpsv tests working again and independent from tetware.
>>
>>
>> Added Files:
>> ------------
>> tests/cpsv/cpsvtest.c
>> tests/cpsv/Makefile.am
>> tests/cpsv/README
>> tests/cpsv/test_cpa.c
>> tests/cpsv/test_cpa_util.c
>> tests/cpsv/test_cpsv_conf.h
>> tests/cpsv/test_cpsv.h
>>
>>
>> Removed Files:
>> --------------
>> tests/cpsv/inc/tet_cpsv_conf.h
>> tests/cpsv/inc/tet_cpsv.h
>> tests/cpsv/Makefile
>> tests/cpsv/src/tet_cpa.c
>> tests/cpsv/src/tet_cpa_test.c
>> tests/cpsv/src/tet_cpd.c
>> tests/cpsv/src/tet_cpnd.c
>> tests/cpsv/src/tet_cpsv_util.c
>> tests/cpsv/suites/cpsv_env.sh
>> tests/cpsv/suites/reg_cpsv.cfg
>> tests/cpsv/suites/reg_cpsv.dep
>> tests/cpsv/suites/reg_cpsv.scen
>>
>>
>> Complete diffstat:
>> ------------------
>> Makefile.am | 1 +
>> configure.ac | 1 +
>> opensaf.spec.in | 1 +
>> osaf/libs/agents/saf/cpa/cpa_init.c | 1 -
>> tests/cpsv/Makefile | 48 -
>> tests/cpsv/Makefile.am | 44 +
>> tests/cpsv/README | 63 +
>> tests/cpsv/cpsvtest.c | 54 +
>> tests/cpsv/inc/tet_cpsv.h | 988 -------------------------
>> tests/cpsv/inc/tet_cpsv_conf.h | 182 ----
>> tests/cpsv/src/tet_cpa.c | 2325
>> ------------------------------------------------------------
>> tests/cpsv/src/tet_cpa_test.c | 7179
>> ----------------------------------------------------------------------------
>> ----------------------------------------------------------------------------
>> ----------------------------------
>> tests/cpsv/src/tet_cpd.c | 98 --
>> tests/cpsv/src/tet_cpnd.c | 101 --
>> tests/cpsv/src/tet_cpsv_util.c | 659 -----------------
>> tests/cpsv/suites/cpsv_env.sh | 17 -
>> tests/cpsv/suites/reg_cpsv.cfg | 4 -
>> tests/cpsv/suites/reg_cpsv.dep | 6 -
>> tests/cpsv/suites/reg_cpsv.scen | 2 -
>> tests/cpsv/test_cpa.c | 7009
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> +++++++++++++++++++++++++++++
>> tests/cpsv/test_cpa_util.c | 2161
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> tests/cpsv/test_cpsv.h | 967 +++++++++++++++++++++++++
>> tests/cpsv/test_cpsv_conf.h | 183 ++++
>> 23 files changed, 10484 insertions(+), 11610 deletions(-)
>>
>>
>> Testing Commands:
>> -----------------
>> cpsv_test
>>
>>
>> Testing, Expected Results:
>> --------------------------
>> All test cases should pass.
>>
>>
>> Conditions of Submission:
>> -------------------------
>> -
>>
>>
>> Arch Built Started Linux distro
>> -------------------------------------------
>> mips n n
>> mips64 n n
>> x86 n n
>> x86_64 y y
>> powerpc n n
>> powerpc64 n n
>>
>>
>> Reviewer Checklist:
>> -------------------
>> [Submitters: make sure that your review doesn't trigger any checkmarks!]
>>
>>
>> Your checkin has not passed review because (see checked entries):
>>
>> ___ Your RR template is generally incomplete; it has too many blank entries
>> that need proper data filled in.
>>
>> ___ You have failed to nominate the proper persons for review and push.
>>
>> ___ Your patches do not have proper short+long header
>>
>> ___ You have grammar/spelling in your header that is unacceptable.
>>
>> ___ You have exceeded a sensible line length in your headers/comments/text.
>>
>> ___ You have failed to put in a proper Trac Ticket # into your commits.
>>
>> ___ You have incorrectly put/left internal data in your comments/files
>> (i.e. internal bug tracking tool IDs, product names etc)
>>
>> ___ You have not given any evidence of testing beyond basic build tests.
>> Demonstrate some level of runtime or other sanity testing.
>>
>> ___ You have ^M present in some of your files. These have to be removed.
>>
>> ___ You have needlessly changed whitespace or added whitespace crimes
>> like trailing spaces, or spaces before tabs.
>>
>> ___ You have mixed real technical changes with whitespace and other
>> cosmetic code cleanup changes. These have to be separate commits.
>>
>> ___ You need to refactor your submission into logical chunks; there is
>> too much content into a single commit.
>>
>> ___ You have extraneous garbage in your review (merge commits etc)
>>
>> ___ You have giant attachments which should never have been sent;
>> Instead you should place your content in a public tree to be pulled.
>>
>> ___ You have too many commits attached to an e-mail; resend as threaded
>> commits, or place in a public tree for a pull.
>>
>> ___ You have resent this content multiple times without a clear indication
>> of what has changed between each re-send.
>>
>> ___ You have failed to adequately and individually address all of the
>> comments and change requests that were proposed in the initial review.
>>
>> ___ You have a misconfigured ~/.hgrc file (i.e. username, email etc)
>>
>> ___ Your computer have a badly configured date and time; confusing the
>> the threaded patch review.
>>
>> ___ Your changes affect IPC mechanism, and you don't present any results
>> for in-service upgradability test.
>>
>> ___ Your changes affect user manual and documentation, your patch series
>> do not contain the patch that updates the Doxygen manual.
>>
>>
>> ----------------------------------------------------------------------------
>> --
>> Presto, an open source distributed SQL query engine for big data, initially
>> developed by Facebook, enables you to easily query your data on Hadoop in a
>> more interactive manner. Teradata is also now providing full enterprise
>> support for Presto. Download a free open source copy now.
>> http://pubads.g.doubleclick.net/gampad/clk?id=250295911&iu=/4140
>> _______________________________________________
>> Opensaf-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/opensaf-devel
>>
>>
>
------------------------------------------------------------------------------
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741551&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel