run-tests: checks behaviour of test on failure while testing

On failure while testing, if this function "result.addFailure(self, str(e))"
returns true then test get 'passed' else count as 'failed'.

--HG--
extra : rebase_source : 379209fa0cb9ed32eb7c1329141374a1500c8df1
run-tests: fixes the '--interactive' option error

This patch fixes a regression recently introduced by a refactoring.

Previously when failure occurs while testing with '--interactive' was enable,
it didn't prompt user by asking whether he wants to accept this failure
changes or not.

This was happening beacuse of the 'if' condition
if ret or not self._options.interactive or \
not os.path.exists(test.errpath):

Everytime failure occurs, this condition gets true and returns back even
when '--interactive' is enabled. This condition don't led the function to
execute further, which consist the '--interactive' functionality.

Now, on failure with '--interactive' enabled, it prompts user whether he wants
to accepts failure changes or not.
If yes then test gets passed  and returns true, else test gets failed.

On every failure, results gets stored in "self.failures.append((test, reason))"
But if failure changes accepted by user then test must get "pop out" from
failed test list.

--HG--
extra : rebase_source : 43c434c74f878225c14f200180e3252581b458b9
test-run-tests.t: test the --interactive option

--HG--
extra : rebase_source : 0c8076cff762653758d4c6286caf7bd874c3c51d
extra : amend_source : 7bb0daff6b06b18ae7ddd86b76db4d7954aad8fb
test-run-tests.t: test the --nodiff option

--HG--
extra : rebase_source : 96b57561fa00ce920e121774e3df79b87364a5f5
revlog: fix check-code error

--HG--
branch : stable
merge with stable