With benchmark.
diff --git a/test/parse_performance_test.dart b/test/parse_performance_test.dart
index 16e412f..e0c5313 100644
--- a/test/parse_performance_test.dart
+++ b/test/parse_performance_test.dart
@@ -6,40 +6,60 @@
 import 'package:test/test.dart';
 
 void main() {
-  group('ArgParser.parse()', () {
-    test('is fast', () {
-      var parser = ArgParser()..addFlag('flag');
+  group('ArgParser.parse() is fast', () {
+    test('for short flags', () {
+      _test(ArgParser()..addFlag('short', abbr: 's'), '-s');
+    });
 
-      var baseSize = 200000;
-      var baseList = List<String>.generate(baseSize, (_) => '--flag');
+    test('for abbreviations', () {
+      _test(
+          ArgParser()
+            ..addFlag('short', abbr: 's')
+            ..addFlag('short2', abbr: 't')
+            ..addFlag('short3', abbr: 'u')
+            ..addFlag('short4', abbr: 'v'),
+          '-stuv');
+    });
 
-      var multiplier = 10;
-      var largeList =
-          List<String>.generate(baseSize * multiplier, (_) => '--flag');
+    test('for long flags', () {
+      _test(ArgParser()..addFlag('long-flag'), '--long-flag');
+    });
 
-      var baseAction = () => parser.parse(baseList);
-      var largeAction = () => parser.parse(largeList);
-
-      // Warm up JIT.
-      baseAction();
-      largeAction();
-
-      var baseTime = _time(baseAction);
-      var largeTime = _time(largeAction);
-
-      print('Parsed $baseSize elements in ${baseTime}ms, '
-          '${baseSize * multiplier} elements in ${largeTime}ms.');
-
-      expect(largeTime, lessThan(baseTime * multiplier * 3),
-          reason:
-              'Comparing large data set time ${largeTime}ms to small data set time '
-              '${baseTime}ms. Data set increased ${multiplier}x, time is allowed to '
-              'increase up to ${multiplier * 3}x, but it increased '
-              '${largeTime ~/ baseTime}x.');
+    test('for long options with =', () {
+      _test(ArgParser()..addOption('long-option-name'),
+          '--long-option-name=long-option-value');
     });
   });
 }
 
+void _test(ArgParser parser, String string) {
+  var baseSize = 50000;
+  var baseList = List<String>.generate(baseSize, (_) => string);
+
+  var multiplier = 10;
+  var largeList = List<String>.generate(baseSize * multiplier, (_) => string);
+
+  var baseAction = () => parser.parse(baseList);
+  var largeAction = () => parser.parse(largeList);
+
+  // Warm up JIT.
+  baseAction();
+  largeAction();
+
+  var baseTime = _time(baseAction);
+  var largeTime = _time(largeAction);
+
+  print('Parsed $baseSize elements in ${baseTime}ms, '
+      '${baseSize * multiplier} elements in ${largeTime}ms.');
+
+  expect(largeTime, lessThan(baseTime * multiplier * 3),
+      reason:
+          'Comparing large data set time ${largeTime}ms to small data set time '
+          '${baseTime}ms. Data set increased ${multiplier}x, time is allowed to '
+          'increase up to ${multiplier * 3}x, but it increased '
+          '${largeTime ~/ baseTime}x.');
+}
+
 int _time(void Function() function) {
   var stopwatch = Stopwatch()..start();
   function();